我正在查詢一個嵌套的項目數組的json結構。我想返回整個結構,但只包含符合查詢條件的嵌套項。使用Golang嵌套MongoDB查詢mgo.v2
所以 - 樣本結構是
{
parentId:1,
items: [
{
field1: 1
field2: 2
},
{
field1: 3
field2: 4
}
]
}
我想用這樣的查詢 - >
db.getCollection('mycollection').find({"items.field1":1, "items.field2":2})
這個工作,但也帶來了回老二項目,我希望它實際返回是這樣的 - >
{
parentId:1,
items: [
{
field1: 1
field2: 2
}
]
}
我已經能夠在MongoDB本身創建一個查詢這實現了我想要的東西 - >
db.getCollection('mycollection').aggregate(
{ $unwind : "$items" },
{ $match : {
"items.field1": 1,
"items.field2": 2,
}}
)
而是試圖對此進行設置使用mgo.v2它證明了一下母馬的時候。 collection.Find方法似乎不喜歡$ unwind命令,並且似乎無法得到正確的語法來使它與Pipe方法一起工作。
有沒有人有任何建議如何創建?我可以創建字符串並傳遞給執行嗎?
感謝反饋,但不起作用,我得到以下錯誤 - >不能使用bson.M l迭代(類型bson.M)作爲類型bson.D在數組或片段文字 – P456678
我將bson.D更改爲bson.M編譯,但結果不正確。它根本沒有嵌套的子項目。 – P456678
我也試了這一點 - 管道:= [] {bson.M \t \t bson.M { 「$開卷」: 「$項目」}, \t \t bson.M { 「$匹配」:bson.M { \t \t \t 「items.field1」:bson.M { 「$當量」:1}, \t \t \t 「items.field2」:bson.M { 「$當量」:2}, \t \t}, \t \t}, \t} – P456678