javascript - data - mongodb nodejs



Méthode correcte pour rechercher des entrées MongoDB par '_id' dans le noeud (4)

Si vous utilisez MongoJS, vous pouvez faire:

var ObjectId = mongojs.ObjectId;

Ensuite,

db.users.find({"_id": ObjectId(id)}, function(err, user){...}

https://ffff65535.com

J'utilise MongoDb (dans le cadre de MongoJS ) dans Node . Voici la documentation pour MongoJS .

J'essaie de passer un appel dans le nœud en fonction du champ _id une entrée. Lorsque j'utilise vanilla MongoDB depuis la console, je peux faire:

db.products.find({"_id":ObjectId("51d151c6b918a71d170000c7")})

et il retourne correctement mon entrée. Cependant, quand je fais la même chose dans Node, comme:

db.products.find({"_id": ObjectId("51d151c6b918a71d170000c7")}, function (err, record) {
    // Do stuff
});

ReferenceError: ObjectId is not defined .

Quel est le bon protocole pour cela?


Si vous utilisez de la mangouste, vous pouvez essayer ceci:

var mongoose = require('mongoose')
usersSchema = mongoose.model('users'),
mongoose.Types.ObjectId("<object_id>")

usersSchema.find({"_id": mongoose.Types.ObjectId("<object_id>")}, function (err, record) {
// Do stuff
});

Vous devez avoir besoin de la fonction ObjectId avant de l’utiliser:

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

Vous pouvez également déstructurer votre ObjectId et MongoClient pour optimiser votre code et le rendre plus lisible.

const { MongoClient, ObjectId } = require('mongodb');




mongodb