javascript - Mongo and Node.js: Finding a document by _id using a UUID (GUID) -
i'm developing restapi using node.js , i'm trying query mongo collection. can query using strings (for example "companyname") need able query "_id" element in document. 
in mongo _id stored (as guid):
{ "_id" : new bindata(3, "mh+t3q6pd0sxvr5z7/pzfw=="),  "companyname" : "testcompany", "databasename" : "testdatabase", } 
 current method looks like: 
exports.getbusinesscarddata = function(req, res) {     var id = req.params.id;     //"id" = mh+t3q6pd0sxvr5z7/pzfw==      tradeshowadmindb.collection('clients', function(err, collection) {         collection.findone({'_id': id}, function(err, item) {             res.send(item);         });     }); }; the "id" coming method base64 string format ("mh+t3q6pd0sxvr5z7/pzfw==") , using query returns nothing (i'm assuming it's not correct type/format). question how "id" correct format can query mongo using _id?
i've been looking ages , can't seem find solution , documentation seems vague on isn't 24 character hex objectid. appreciated!  
 
 additional information:
i'm using node v0.10.33 , express v4.x
the mongo driver using base javascript mongo driver node. 
 (found here: http://docs.mongodb.org/ecosystem/drivers/node-js/)
ok i've found solution base64 string guid format within node, convert needs done:
var mongo.require('mongodb'); var guid = new mongo.binary(new buffer(<base65string>, 'base64'), 3); and can query database this:
collection.findone({'_id' : guid}, function(err, item) {                     res.send(item);                 }); 
Comments
Post a Comment