collection.find({ "data.username": "someusername" }}})
作品,取1个匹配的文档,这
collection.find({ data: { $elemMatch: { username: "someusername" }}})
不取任何东西。不应该吗? (我会使用虚线但想要扩展查询。)
这是与Meteor集合中的mongo控制台。在Robomongo和流星控制台也尝试过,结果也一样。
修订:这里有一个文件(修剪)
{
"_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'不是数组字段 – styvane
我知道。标记为正确。我只是在写信给你。 :) – jiku