2014-12-23 76 views
0

我正尝试使用mongoose从mongo获取记录。 我有项目文件,有子文件工作工作用户,属性。我想获取具有特定用户的文档,并且没有值集。

到目前为止,我尝试:

models.project.findOne {'work.user': user,'work.to':{$exists: false}}, 
    (err, data) -> # data is always null, no error. 

看来,如果只是工作的一个对象包含属性“为”然后$存在:等于为true。有没有办法做到这一点?

另外这里是JS相同的代码,如果你喜欢:

models.project.findOne({ 
    'work.user': user, 
    'work.to': { 
    $exists: false 
    } 
}, function(err, data) {}); 

感谢您的时间。

回答

2

您可以在此情况下使用$elemMatch,它会返回结果只有特定的时候user匹配,没有to值设置在相同的阵列元件中

models.project.users.findOne({ 
"work" : { $elemMatch: {"user":user, "to": {$exists: false}}} 
}, function(err, data) {}); 
1

你可以使用“空”对于这种情况,而不是$存在

models.project.findOne({ 
    'work.user': user, 
    'work.to': null 
}, function(err, data) {});