108 votes

node.js mongodb sélectionne le document par _id node-mongodb-native

J'essaie de sélectionner un document par identifiant

J'ai essayé:

 collection.update({ "_id": { "$oid": + theidID } }

collection.update({ "_id": theidID }

collection.update({ "_id.$oid": theidID }}
 

Aussi essayé:

 collection.update({ _id: new ObjectID(theidID ) }
 

Cela me donne une erreur 500 ...

 var mongo = require('mongodb')
var BSON = mongo.BSONPure;
var o_id = new BSON.ObjectID(theidID );

collection.update({ _id: o_id }
 

Aucun de ces travaux. Comment sélectionner par _id?

172voto

KingPin Points 376
var mongo = require('mongodb');
var BSON = mongo.BSONPure;
var o_id = new BSON.ObjectID(theidID);
collection.update({'_id': o_id});

78voto

ncoronges Points 168

C'est l'approche qui a fonctionné pour moi.

 var ObjectId = require('mongodb').ObjectID;

var get_by_id = function(id, callback) {
  console.log("find by: "+ id);
  get_collection(function(collection) {
    collection.findOne({"_id": new ObjectId(id)}, function(err, doc) {
       callback(doc);
    });
  });
}
 

23voto

nikita Points 98

maintenant vous pouvez simplement utiliser ceci:

 var ObjectID = require('mongodb').ObjectID;
var o_id = new ObjectID("yourObjectIdString");
....
collection.update({'_id': o_id});
 

Vous pouvez voir la documentation ici

12voto

Raphael Schweikert Points 6380

Avec native_parser:false :

 var BSON = require('mongodb').BSONPure;
var o_id = BSON.ObjectID.createFromHexString(theidID);
 

Avec native_parser:true :

 var BSON = require('mongodb').BSONNative;
var o_id = BSON.ObjectID.createFromHexString(theidID);
 

1voto

jmontross Points 1882

La réponse dépend du type de variable que vous passez dans l’ID. J’ai tiré un id d’objet en faisant une requête et ranger mon account_id que l’attribut ._id. En utilisant cette méthode vous interrogez simplement à l’aide de l’id de mongo.

});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X