【发布时间】:2015-08-28 12:47:26
【问题描述】:
虽然
collection.find({ "data.username": "someusername" }}})
工作,获取 1 个匹配的文档,这个
collection.find({ data: { $elemMatch: { username: "someusername" }}})
不获取任何内容。不应该吗? (我会使用 dotted 但想扩展查询。)
这是 Meteor 集合上的 mongo 控制台。在 Robomongo 和 Meteor 控制台上也试过,结果相同。
已更新:这是一个文档示例(已修剪)
{
"_id" : "fDyZsiuqQgkRmPno5",
"type" : "user",
"data" : {
"id" : 1234,
"username" : "someusername",
"website" : "http://www.somewhere.com",
"email" : null,
"payments" : [
{
"payment" : {
"id" : "zFyZsiGgQskRmPn43"
}
}
]
},
"createdAt" : ISODate("2015-08-28T12:16:46.918+02:00")
}
【问题讨论】:
-
正如我在回答中所说(甚至在您的“编辑”之前),您不能在这里使用
$elemMatch,因为data不是数组字段 -
我知道。标记为正确。我只是在给你写信。 :)
标签: arrays mongodb mongodb-query nested-queries database