簡體   English   中英

Mongo DB查詢公式

[英]Mongo db query formulation

我有一個具有以下集合的數據庫:

{id1: "1", id2: "a"}, {id1: "2", id2: "a"}, {id1: "3", id2: "a"}, {id1: "1", id2: "b"}, {id1: "2", id2: "b"}

我想找到id2給定id1的列表:1,2

給出的答案應該是b因為它是唯一具有1,2 id2

如果給定的“ id1”的列表為:1、2、3,則假定“ a”與1,2 AND 3相關聯,則找到的“ id2”應為“ a”

我如何在Mongodb上查詢此查詢,最好使用聚合。

我想我了解您正在嘗試做的事情。 您可以使用匯總查詢來做到這一點,但這不是很簡單:

db.<collection_name>.aggregate([
    {$group:{_id:"$id2",id1Set:{$addToSet:"$id1"}}},
    {$match:{"id1Set":{$size:2,$all:["1","2"]}}}
])

該查詢將按id2對文檔進行分組,並創建一個包含id1值的集合。 然后,它與該組中的文檔匹配,查看id1Set的大小(應為2),並且id1Set中的值應包含“ 1”和“ 2”的所有值。

由於示例數據包含id2的字符串值(“ 1”和“ 2”,而不是1和2),因此匹配項是字符串值而不是數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM