【问题标题】:How to write a mongo query that queries an array?如何编写查询数组的mongo查询?
【发布时间】:2017-05-20 12:17:02
【问题描述】:

假设我有一个存储以下数据的 mongo 数据库

String | Array
ID     | Data
100    | [Name: John, Age: 5]
100    | [Name: Lucy, Age: 5]
200    | [Name: Pete, Age: 5]
200    | [Name: Andy, Age: 5]
200    | [Name: Jimi, Age: 5]
300    | [Name: Raul, Age: 5]

如何查询数据库以提供所有 ID 及其在 Data.xml 中的现有名称。我希望结果只显示我需要的两列,如下所示:

{
    "ID" : "100", "Data" : [ "Name" : "John"]
    "ID" : "100", "Data" : [ "Name" : "Lucy"]
    "ID" : "200", "Data" : [ "Name" : "Pete"]
    "ID" : "200", "Data" : [ "Name" : "Andy"]
    "ID" : "200", "Data" : [ "Name" : "Jimi"]
    "ID" : "300", "Data" : [ "Name" : "Raul"]
}

【问题讨论】:

  • 您能否以原始 JSON 格式显示您的输入数据以及预期的输出?
  • 这看起来不像一个数组,它可能是一个对象。你真的应该先看看documentation,因为这是很常见的事情。
  • 为什么你在问题中标记了 sql。我无法在任何地方将 sql 与这个问题联系起来。
  • 抱歉,删除了 SQL,因为最初的问题也涉及 SQL。还编辑了响应以明确 Data 对象是一个数组

标签: mongodb mongodb-query database


【解决方案1】:
db.collection_name.find(
   {},
   { "ID": 1, "Data.name": 1 }
)

在我看来它不像一个数组,它可能是一个对象。 您可以使用上面的查询来显示设置为 1 的列。

【讨论】:

  • 谢谢,这提供了我需要的结果集:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多