Node.js 投影无法在mongo中使用db.collection.find
一天前我刚开始使用mongodb,遇到了一个问题。 我在网上和stackoverflow上搜索如何在最终答案中隐藏_id值,并按照提供的答案尝试运行代码,但仍然显示_id部分 注:我正在使用cloud9作为ideNode.js 投影无法在mongo中使用db.collection.find,node.js,mongodb,amazon,cloud9,Node.js,Mongodb,Amazon,Cloud9,一天前我刚开始使用mongodb,遇到了一个问题。 我在网上和stackoverflow上搜索如何在最终答案中隐藏_id值,并按照提供的答案尝试运行代码,但仍然显示_id部分 注:我正在使用cloud9作为ide var mongo = require('mongodb').MongoClient; mongo.connect('mongodb://localhost:27017/learnyoumongo', function(err, database) { if(err)
var mongo = require('mongodb').MongoClient;
mongo.connect('mongodb://localhost:27017/learnyoumongo', function(err, database) {
if(err) throw err;
const db = database.db('learnyoumongo');
var parrots = db.collection('parrots');
parrots.find({
age: { $gt: +process.argv[2] }
},{
name: 1,
age: 1,
_id: 0
}).toArray(function(err, docs){
if(err) throw err;
console.log(docs);
database.close();
});
});
你可以像这样分开投影:
parrots.find({
age: { $gt: +process.argv[2] }
}).project({_id:0}).toArray(function(err, docs){
if(err) throw err;
console.log(docs);
database.close();
});
我遇到了同样的问题,无法使投影正常工作,而上述方法对我很有效您能否发布文档的结构?您不能同时拥有1和0。因此,您可以通过将字段标记为1来选择想要的内容,也可以通过将字段标记为0来选择不想要的内容。例如,我在一个对象中有4个字段
电子邮件、姓名、年龄、性别
。我只想收到电子邮件
和姓名
。我可以做{Email:1,Name:1}
或者{Age:0,Gender:0}
你的代码很好,我已经测试过了,可以用了。你有错误吗??它没有按预期返回数据??是的,我得到了0和1部分,但我的代码似乎不理解I。不,我没有任何错误,但输出不是我所需要的。我想隐藏id属性,该属性尝试使用0标志执行,但id仍然显示在最终输出中!!成功了。我很想知道为什么它不能像文档中解释的那样工作。这是一个巨大的突破性变化;谢谢你指出这一点。在看到这个答案后,我浏览了github回购协议。这里提到了“v2对v3”的例子。(v3上有很多突破性的变化)。回答得好!完全正确那真是糟透了!我花了一个小时想知道出了什么问题,我的查询在Robo3T中运行良好,而在node中则不起作用!:/谢谢你的回答!谢谢它起作用了!我花了好几个小时挠头,直到找到这篇文章。