【问题标题】:MongoDB return only matched sub-sub documentMongoDB 只返回匹配的子子文档
【发布时间】:2018-09-05 14:31:11
【问题描述】:

鉴于上述文档结构,在 mongodb 中,你们如何过滤 id 与给定参数匹配的特定终端?

【问题讨论】:

  • 您能否提供您的文档结构的示例数据集?

标签: mongodb mongodb-query mongodb-.net-driver


【解决方案1】:

假设您的 JSON 看起来像这样或类似:

{
    "Merchant_Account":"Merchant Name",
    "ID":"MA1",
    "Card_Acceptor":[{
        "ID":"CA1",
        "Vendor_ID":{
            "ID":"VID1"
        },
        "Terminal_ID":[
            "TID1",
            "TID2",
            "TID3"
        ]
    }]
}

您可以在 Mongo Shell 中使用以下命令检索此文档:

db.collection.find({"Card_Acceptor":{$elemMatch:{Terminal_ID:"TID1"}}})

这将返回终端 ID 在终端 ID 数组中匹配的整个文档。这里的关键是$elemMatch 数组查询运算符。

【讨论】:

  • 这也会返回多个终端
  • 我不确定你是在问我还是告诉我,但答案是肯定的,它也会返回多个终端。如果有多个条目以“TID1”作为 Terminal_ID,则它们都将被返回。如果您期待不同的结果,您将需要修改您的问题并更具体。添加示例数据和预期的输出将真正帮助您获得正确的答案。
  • 如果我将 TID1 作为参数值传递,我希望查询返回 { "Merchant_Account":"Merchant Name", "ID":"MA1", "Card_Acceptor":[{ "ID ":"CA1", "Vendor_ID":{ "ID":"VID1" }, "Terminal_ID":[ "TID1" ] }] }
猜你喜欢
  • 2015-10-31
  • 2018-06-13
  • 2019-07-09
  • 2021-08-06
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 2021-06-17
相关资源
最近更新 更多