MongoDB - 如何找到文档字段包含具有给定名称的子文档? (包含示例查询和文档)
问题描述:
这里我试图检索文档中包含文档DummyFoo的文档,DummyFoo又包含文档DummyBar?MongoDB - 如何找到文档字段包含具有给定名称的子文档? (包含示例查询和文档)
据我可以告诉我下面的语法是正确的,但没有结果返回,但我知道它们存在。我是否错误地构建了我的查询?
{ "DummyFoo" : { "$elemMatch" : { "DummyBar": { "$exists" : true } }}}
下面是我希望以匹配文档的例子:
{
"_id" : ObjectId("5423d66ba077e6205cc9ecef"),
"Title" : "Test 1234587611",
"Subtitle" : "Test 1 Subtitle",
"DummyFoo" : {
"DummyDate" : "2014-09-25T09:46:35.6626303+01:00",
"DummyBar" : {
"Name" : "Test",
"Number" : 1
}
}
}
答
$elemMatch是专为查询arrays.In这种情况下做,你有一个嵌套的JSON,其中的MongoDB识别为embedded document。
您可以使用dot notation查询嵌入式文档。
{ "DummyFoo.DummyBar": { "$exists" : true }}
这是正确的还是不是?你的文件是什么样的? AFAIK其他人可以告诉你的唯一方法是通过显示你期望匹配的文档。 ESP候选人? – 2014-09-25 10:08:04
这是一个公平的评论。我以为我可能会严格地构建查询。我现在添加了一个示例文档。那么,你希望这个查询匹配这个文件吗?谢谢。 – gb2d 2014-09-25 10:20:59