【发布时间】:2015-12-08 04:53:45
【问题描述】:
我有这样的文件:
{
"InDate": "11.09.2015",
"Kst2Kst": true,
"OutDate": "11.09.2015",
"__v": 0,
"_id": ObjectId('55f2df2d7e12a9f1f52837e6'),
"accepted": true,
"inventar": [
{
"accepted": "1",
"name": "AAAA",
"isstammkost": true,
"stammkost": "IWXI"
},
{
"accepted": "1",
"name": "BBBB",
"isstammkost": false,
"stammkost": "null"
}
]
}
我想在 inventar-array 中选择带有 "isstammkost": true 的数据。
我的查询是:
Move.findOne({accepted : true, 'inventar.isstammkost' : true},
'OutDate InDate inventar.name', function(err, res)
它不起作用 -> 它选择所有,即使使用 inventar.isttammkost : false。 “正常”查询像我想要的那样工作(子数组中没有条件)。在子数组中设置条件的正确方法是什么?
【问题讨论】:
-
它正在从您的 mongodb 中查找/返回多个文档,即使您使用的是 findOne()?您是否在 mongo shell 中尝试过等效查询?
-
我不知道你想说什么。查询结果很好,但条件 "inventar.isttammkost" : true 被忽略。我想知道在数组中设置条件的正确方法。
-
没关系,我意识到我正在犯同样的错误。