mongodb node.js 查找数组中存在多个 ID 的文档
mongodb node.js finding document with multiple Ids present in an Array
我有一个包含 mongodb 集合 ID 的数组
array = [ '573163a52abda310151e5791',
'57358e5dbd2f8b960aecfa8c',
'573163da2abda310151e5792' ]
像这样,在我的nodejs代码中我想找到所有这些Id的文档。我使用的包是 mongoskin.
根据文档,这是找到结果的正确方法,它给了我想要的结果。但在这里我想使用数组而不是直接值,但无法找到如何做到这一点
db.coll.find({
_id: {
$in: [mongoskin.helper.toObjectID("573163da2abda310151e5792"),
mongoskin.helper.toObjectID("57358e5dbd2f8b960aecfa8c"),
mongoskin.helper.toObjectID("573163a52abda310151e5791")
]
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});
我对猫皮知之甚少,但也许你可以试试这个……
var newArray = oldArray.map(function(ele) {
return mongoskin.helper.toObjectID(ele);
});
OR
var newArray = oldArray.map(mongoskin.helper.toObjectID(ele));
现在您可以在查询中使用 newArray
db.coll.find({
_id: {
$in: newArray
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});
我觉得这对你有用
ObjectID = require('mongoskin').ObjectID;
var array1 = ["5736d1210a39c2547cb9d90e","5736d1380a39c2547cb9d90f]
var array2 = []
array1.forEach(function(stringId){
array2.push(new ObjectID(stringId)))
})
然后在查询中使用这个 array2 变量
db.coll.find({
_id: {
$in: array2
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});
我有一个包含 mongodb 集合 ID 的数组
array = [ '573163a52abda310151e5791',
'57358e5dbd2f8b960aecfa8c',
'573163da2abda310151e5792' ]
像这样,在我的nodejs代码中我想找到所有这些Id的文档。我使用的包是 mongoskin.
根据文档,这是找到结果的正确方法,它给了我想要的结果。但在这里我想使用数组而不是直接值,但无法找到如何做到这一点
db.coll.find({
_id: {
$in: [mongoskin.helper.toObjectID("573163da2abda310151e5792"),
mongoskin.helper.toObjectID("57358e5dbd2f8b960aecfa8c"),
mongoskin.helper.toObjectID("573163a52abda310151e5791")
]
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});
我对猫皮知之甚少,但也许你可以试试这个……
var newArray = oldArray.map(function(ele) {
return mongoskin.helper.toObjectID(ele);
});
OR
var newArray = oldArray.map(mongoskin.helper.toObjectID(ele));
现在您可以在查询中使用 newArray
db.coll.find({
_id: {
$in: newArray
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});
我觉得这对你有用
ObjectID = require('mongoskin').ObjectID;
var array1 = ["5736d1210a39c2547cb9d90e","5736d1380a39c2547cb9d90f]
var array2 = []
array1.forEach(function(stringId){
array2.push(new ObjectID(stringId)))
})
然后在查询中使用这个 array2 变量
db.coll.find({
_id: {
$in: array2
}
}).toArray(function(err, docs) {
console.log(docs);
res.send(docs)
});