node.js - Meteor Mongo BulkOp turning ObjectID into plain object -


while using meteor, access underlying node mongo driver can make bulk updates , inserts.

const bulk = coll.rawcollection().initializeorderedbulkop();  bulk.insert({key_id: mongo.collection.objectid()}); // note key_id objectid ...  bulk.execute(); 

but value of key_id fields ends being plain subdocument {_str: '...'} when in database after insert.

is there way use bulk operations in node's mongo library (whatever meteor uses) , keep objectid's mongo's objectid type?

(there's many posts nature of different id types, , explaining minimongo, etc. i'm interested bulk operations converting objectid's plain objects, , solving issue.)

from neil's top-level comment

on native method need grab native implementation. should able access loaded driver through mongointernals [...]

mongo.collection.objectid not plain objectid representation, , complex object meteor internal use. hence why native methods don't know how use value.

so if have field objectid, , you're using method of meteor collection's rawcollection (for example,

  • .distinct
  • .aggregate
  • .initializeorderedbulkop
  • .initializeunorderedbulkop

), you'll want convert objectid's using

const convertedid = new mongointernals.npmmodule.objectid(   originalid._str ); // use in 1 of arguments function or const query = {_id: convertedid}; 

before calling method on them.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -