我如何搜索 collection 以在 MongoDB 中的其中一个文档中找到嵌套值

How can I search a collection to find a nested value in one of its documents in MongoDB

在上面的屏幕截图中,您可以看到我从 tests[= 打开了一个名为 (1) ObjectId(572b...ec7a) 的文档35=] collection 在我的 mongo 数据库中。 (tests collection 充满了这样的文档)在屏幕截图的底部附近,您可以看到一个名为 Name 的字段这是一个值为 EditMessagesSettings 的字符串类型。我想查询 tests collection 和 return 任何包含特定 Name 的文档(例如 EditMessagesSettings 在这种情况下)。我该怎么做?

以下是我尝试过但未成功的一些查询,收到 return 消息,例如 在 4 毫秒内获取 0 条记录

  • db.getCollection('tests').find({名称:"EditMessagesSettings"})
  • db.getCollection('tests').find({名称:{$regex:"Settings"}})

编辑:如果是任何星座,如果我输入 db.getCollection('tests').find({Obj}),我会得到一个auto-complete ObjectId 的选项(

尝试

db.getCollection('tests').find({"Data._value.Name":"EditMessagesSettings"})

我能看出问题出在哪里了。您需要使用两个下划线而不是一个。请参阅以下示例:

_value 与正确值 __value.

因此您的查询应如下所示:

db.getCollection('tests').find({"Data.__value.Name":"EditMessagesSettings"})