我在 mongoDB 中有这个查询
var query = { "_id": new ObjectID(id)};
var items = {items:1};
warehouses.find(query, items,function (error, docs) {
if (error) {
error(error);
return;
}
success(docs);
});
我想通过 _id 从文档中获取项目。这返回给我 docs.items = undefined
但是当我这样做时:
warehouses.find(query, items).toArray(function (error, docs) {
if (error) {
error(error);
return;
}
success(docs);
});
返回数据:
0: Object
_id: ObjectID
items: Array[3]
0: Object
1: Object
2: Object
length: 3
如何通过第一个查询获取数据?我想要类似的东西
最佳答案
有一个很大差异。如果您只期望一个结果,例如通过_id
搜索,则使用.findOne()
:
warehouses.findOne(query, items, function (error, doc) {
否则您将返回 Cursor()目的。至少在 native 驱动程序中如此,在 ODM 中以某种形式如此。
关于node.js - mongoDB查询返回null,但使用.toArray返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353358/