1

我有一个collection名字projects,我正在尝试检索除此url查询之外的所有内容

db.projects.find({name:"arisha"},{url:0}).pretty()

此查询运行良好并返回所有内容,url但我的问题是如何在 name 僧侣中 Node module实现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")
}
4

1 回答 1

3

要排除僧侣url中的字段,请尝试以下语法

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
});
于 2015-04-18T18:34:22.913 回答