Node

2013-07-09 41 views
30

'daki '_id' ile MongoDB girişlerini doğru şekilde aramak için MongoDb (MongoJS ürününün parçası olarak) Node numaralı telefondan arıyorum. Here is the documentation for MongoJS.Node

Girdinin _id alanına bağlı olarak Düğüm içinde arama yapmayı deniyorum.

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

ve doğru benim girişini döndürür: konsoldan vanilya MongoDB kullanırken, ben yapabilirsiniz. Ben gibi, Düğüm aynı şeyi yaptığında Ancak:

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

Ben ReferenceError: ObjectId is not defined olsun.

Bunu yapmak için doğru protokol nedir? Eğer MongoJS kullanıyorsanız

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

cevap

71

Bunu kullanmadan önce Nesne Kimliği işlevini gerektiren gerekir Sonra

var ObjectId = mongojs.ObjectId; 

,

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

'var ObjectId = require (" mongojs ") kullanılır. ObjectId;', ancak aynı zamanda çalışır! Şerefe. – Jascination

+7

Veya ['require ('mongoose') .Schema.ObjectId'] (http://stackoverflow.com/questions/8111846/how-to-set-objectid-as-a-data-type-in-mongoose) – laggingreflex

+1

Mongoose şeması biri benim için çalışmadı. Mongodb yaptı. – PanMan

1

, yapabileceğiniz:

2

eğer Bunu deneyebilirsiniz mongoose kullanıyorsunuz:

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 
});