好的,所以在这个原始的question我试图只通过键名搜索,只输出该名称的值我能通过使用.toArray()来做到这一点,如果我没有那么我会得到这个巨大的输出不相关的数据。但是,在使用数据的回调方面很乏味,因为它在数组中不应该是数组。需要做.toArray()获取关于键名称的输出mongodb .find()不是值
一些例子。这两者有什么区别。前者给了我一个输出,不使用.toArray(),后者如果我删除.toArray()我得到不相关的数据作为输出。
前
collection.findOne({"username" : username}, function(err, result) {
console.log(result);
callback(err, result);
db.close();
});
后期
collection.find({},{"credentials":1}).toArray(function(err, result) {
callback(err, result);
db.close();
});
而且为什么当是IE "credentials":1,"_id":0,"username":0
包括在原来的问题更加然后一个参数的答案被用户阿洛克Deshwal你得到错误。
MongoError:Can not canonicalize query:BadValue Projection can not be mixed with Include and Exclusion。
所以我猜这个底线是我如何实现输出,停止使用.toArray()
输出我与.toArray获得()的。
[{
_id: 5636e00c09431db4560ef063,
credentials: {
password: '120bfeae7386165304b1cce4755a5c509593cc9157f58bac9d6f03e2230421cf',
randomSalt: '00dfb37635ba7e5a513f9fd6e8bdf746f85ec3571df8288e1fdb44f399e331f0'
}
}]
我想要的输出。
{
_id: 56378e258300a47301b151ed,
credentials: {
password: '05c9f953969c7478fab0c5495b50d356ae9205c62ff41bab4d7891b804c1f369',
randomSalt: '09973bc8109a9f6255f63e96528f5cf8ef74248192c60121159781f5d1f5f264'
}
}
真棒!在.next().each()或.toArray()之间有什么不同的性能比较快? – Darkrum
你可以参考这个http://stackoverflow.com/questions/29675079/alternatives-to-mongodb-cursor-toarray-in-node-js。所有这三个都会将文档加载到客户端,所以应该没有太大的性能差异。 –
谢谢!当我问我原来的问题时,你在哪里?哈哈! – Darkrum