我有一个collection
名称projects
,我正在尝试检索除此url
之外的所有内容,例如此查询
db.projects.find({name:"arisha"},{url:0}).pretty()
此查询工作正常,并返回除url
以外的所有内容,但我的问题是如何实现此目的
Node module
名monk的MongoDB
。
我正在使用此代码,但它不起作用并返回每个字段:
var projs = db.get('projects');
projs.find({creator : req.session.user._id},{url:0}, function (err,data) {
console.log(data);
if(!err) {
res.locals.projs = data;
console.log(data);
res.render("projects.ejs",{title: "Projects | Bridge"});
}
});
我没有得到问题所在,请提前帮助并表示感谢:)
示例文档:
{
"name" : "arisha",
"date" : {
"day" : 18,
"month" : 4,
"year" : 2015
},
"creator" : "552edb6f8617322203701ad1",
"url" : "EyjPdYoW",
"members" : [
"552edb6f8617322203701ad1"
],
"_id" : ObjectId("5532994ba8ffdca31258bd1a")
}
答案 0 :(得分:3)
要排除 monk 中的url
字段,请尝试以下 syntax :
var db = require('monk')('localhost/mydb');
var projs = db.get('projects');
projs.find({ creator : req.session.user._id }, "-url", function (err, data) {
// exclude url field
});
修改强>
要排除多个字段,请使用以下投影语法:
projs.find({ creator : req.session.user._id }, { fields: { url: 0, creator: 0 } }, function(err, data) {
// exclude the fields url and creator
});
或者(正如您所发现的那样),您也可以这样做:
projs.find({ creator : req.session.user._id }, "-url -creator", function (err, data) {
// exclude url and creator fields
});