javascript – 来自MLab的MongoDB:通过ID找不到工作
作者:互联网
我一直在努力通过MongoDB中的ID过滤我的记录而没有成功.问题在于$oid
在MLAB上,我的记录如下:
{
"_id": {
"$oid": "57603891dcba0f7813102b3f"
},
"age": 10,
"name": "john",
"answer": "3",
}
我的剧本如下:
mycollection.find({_id:"57603891dcba0f7813102b3f"},{},{},function(err, docs) {
console.log("record"+docs);
docs.each(function(err, doc) {
if(doc) {
console.log("record"+doc);
}
});
});
它有什么问题?任何想法的家伙?
解决方法:
您的脚本的问题是您正在尝试将普通字符串“57603891dcba0f7813102b3f”与ObjectId字符串进行比较
{
"$oid": "57603891dcba0f7813102b3f"
},
如果您使用的是Node.Js,那么您可以执行此操作
1)从mongodb包导入ObjectId api
var ObjectId = require('mongodb').ObjectID;
2)在查询中将普通字符串转换为ObjectId
mycollection.find({_id:ObjectId("57603891dcba0f7813102b3f")},{},{},function(err, docs) {...}
顺便说一句,@ titi23发布的答案也有效.但我发现ObjectId转换是一种更清洁的方法.
标签:javascript,mongodb,mlab 来源: https://codeday.me/bug/20190714/1458499.html