我试图使用Node.js和MongoDB通过_id查找()。
我可以在使用替代参数时显示数据库中的对象,或者根本不使用任何参数。这是我的代码和结果,以表明:
mongo.connect(url, function(err, db){
if (err) throw err;
db.collection('listings').find().toArray(function(err, result){
if (err) throw err;
console.log(result);
db.close();
});
});
我得到的结果是:
[{" _id":" 5a1ff1ac32fe0a2bd966be1e""标题":"喜""价格&#34 ;: #&34; 5"},{" _id":" 5a207cea2f119cbd6a5fa688""标题":"你好"&#34 ;价格":" 10"}]
当我修改代码以使用标题" hi"来查找结果时我回来了:
[{" _id":" 5a1ff1ac32fe0a2bd966be1e""标题":"喜""价格&#34 ;: " 5"}]
使用以下代码:
mongo.connect(url, function(err, db){
if (err) throw err;
db.collection('listings').find({'title': 'hi'}).toArray(function(err, result){
if (err) throw err;
console.log(result);
db.close();
});
});
然而当我尝试使用此代码按_id排序时:
mongo.connect(url, function(err, db){
if (err) throw err;
db.collection('listings').find({'_id': '5a1ff1ac32fe0a2bd966be1e'}).toArray(function(err, result){
if (err) throw err;
res.send(result);
db.close();
});
});
我得到的结果是
[]
问题是:如何通过_id查找,以便在使用_id时可以获取特定_id的结果?
答案 0 :(得分:0)
'5a1ff1ac32fe0a2bd966be1e'
是一个字符串。
_id
的类型为ObjectId
。
您可以使用ObjectID('5a1ff1ac32fe0a2bd966be1e')
制作对象ID。你可以要求这样的功能:
const ObjectID = require('mongodb').ObjectID;
Here是文档。