当前位置: 首页 > 知识库问答 >
问题:

如何搜索集合以在MongoDB中的一个文档中找到嵌套值

姚培
2023-03-14

在上面的屏幕截图中,您可以看到我从mongo数据库中的测试集合中打开了一个名为(1)ObjectId(572b…ec7a)的文档。(测试集合中充满了这样的文档)在屏幕截图底部附近,您可以看到一个名为Name的字段,该字段的类型为string,值为EditMessagesSettings。我想查询tests集合并返回任何包含特定名称的文档(如本例中的EditMessagesSettings)。我该怎么做?

下面是一些我尝试过但没有成功的查询,得到的返回消息类似于4ms内抓取的0条记录。

  • 数据库。getCollection(“测试”)。查找({Name:“editmessessettings”})

编辑:如果它是任何星座,如果我输入db。getCollection(“测试”)。find({Obj}),我得到一个ObjectId()的自动完成选项。

共有2个答案

金骞尧
2023-03-14

尝试

db.getCollection('tests').find({"Data._value.Name":"EditMessagesSettings"})
公良鸿禧
2023-03-14

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

_值与正确值的比较。

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

db.getCollection('tests').find({"Data.__value.Name":"EditMessagesSettings"})
 类似资料:
  • 问题内容: 我如何在mongodb文档中嵌套文档的地方搜索文档。例如,我有一组私人消息。每条私人消息都有两个嵌套文档- 一个代表发送用户,另一个代表接收使用。两个嵌套文档的格式均为- userID:34343,名称:Joe Bloggs 我希望能够搜索用户发送的所有邮件(例如,搜索发件人用户的嵌套文档)。 我正在使用Java驱动程序。我是否需要创建一个代表嵌套文档的DBObject? 谢谢 问题答

  • MongoDB是否能够在不进行多次查询的情况下资助大量随机文档? e、 g.我在加载集合中的所有文档后在JS端实现,这很浪费-因此,我只想检查一下,是否可以通过一个db查询更好地实现这一点? 我在JS方面所走的道路: 获取所有数据 制作一个ID数组 洗牌ID数组(随机顺序) 将数组拼接到所需的文档数 通过按ID选择它们来创建文档列表,我们在之前的两次操作后留下了这些ID,一个接一个地从整个集合中

  • 假设我有一些用户使用以下文档编制索引: ElasticSearch DSL是否允许我构造一个查询,在该查询中,我可以根据人们的电子邮件地址进行搜索,但前提是该地址处于活动状态?更抽象地说,根据嵌套对象的其他属性搜索文档。 满足此条件的搜索将返回此文档以搜索或,但在搜索时不会返回此文档。

  • 问题内容: 我正在尝试使用以下映射搜索文档: 我想在“ naam”,“ omschrijving”等中进行搜索,但也想在嵌套文档“ kenmerken”的动态映射中进行搜索,因此我创建了两个搜索查询,但它们似乎都不起作用。 我应该使用布尔还是过滤器?或两者结合? 我什至靠近吗? 问题答案: 由于需要解决方案,因此我决定创建一个单独的字符串字段,在其中分解“ kenmerken”字段。目前,此方法可

  • 我有一个问题,但在我看来,我看到的所有解决方案都在解决一个比我更复杂的问题。 我对MongoDB比较陌生,但我一直在将它与Apache Neach一起使用来存储抓取的文档。由于我分阶段抓取,并以不同的方式评估每个抓取的结果,以获取统计数据,因此我一直将结果存储在不同的集合中。 我所要做的就是把这些收藏放在一起成为一个大的收藏,这样我就可以翻译和分类。所有字段都是相同的,因此我不需要添加任何新字段。

  • 多亏了这里的人的帮助,我成功地在我的文档中找到了两个ID,并在另一个集合中找到了他们的代表文档。我需要采取的下一步是进一步查找一个“嵌套”ID(引用另一个集合中的文档)。 其结果如下: 我希望chieftain部分是这样的(这就是没有添加'last'$lookup'的chieftain文档的样子):