mongodb中根據陣列子元素進行匹配,有兩種方式。
不同點在於所匹配的主體不同。
「[陣列名].[子元素欄位名]」 的方式匹配的主體為 「[陣列名]」, 適用於單個條件,如果是多個條件, 則變成陣列子元素之間的「或」運算。
請看示例:
假設某個集合內有2條資料:
document1 如下:
,
]}
document2如下:
,
]}
找出陣列中, 具有 qid=1並且reorderflag=0的記錄
查詢陣列內同一條記錄同時滿足2個條件的語句:
} }
查詢結果是:
,
]}
可以看到, 其執行結果是, 對陣列內的每乙個子元素, 執行 $elemmatch 匹配, 可以進行多個條件的匹配。
找出陣列中, qid=1 或者 reorderflag=0的記錄
陣列整體能滿足以下2個條件:
執行的主體是 qlist, 要求: 有某些子元素滿足 qid=1, 也要有某些子元素滿足 reorderflag=0`。
查詢結果是:
,
]},
]}
可以看到, 其執行結果是, 對陣列進行匹配, 其中需要有子元素 滿足 "qlist.qid": 1, 還需要有子元素 滿足 "qlist.qid": 1, , 適合進行單個條件的匹配。
如果是單個條件匹配, 則以下方式結果是一樣的。
或者
} }
查詢的結果都是2條記錄
Go 在 MongoDB 中對陣列元素進行查詢
mongodb中根據陣列子元素進行匹配,有兩種方式。使用 陣列名 子元素欄位名 的方式進行匹配。使用 陣列名 elemmatch 的方式。不同點在於所匹配的主體不同。陣列名 子元素欄位名 的方式匹配的主體為 陣列名 適用於單個條件,如果是多個條件,則變成陣列子元素之間的 或 運算。請看示例 假設某個...
46 陣列中的元素進行位置交換
陣列元素交換位置 param arr 陣列 param index1 新增專案的位置 param index2 刪除專案的位置 index1和index2分別是兩個陣列的索引值,即是兩個要交換元素位置的索引值,如1,5就是陣列中下標為1和5的兩個元素交換位置 function swaparray a...
陣列 在陣列中查詢元素
description 輸入10個整數到乙個長度為10的整型陣列中,然後輸入乙個整數,檢視該整數是否在剛才得到的陣列中,如果在,輸出 found 如果不在,輸出 not found input 11 個整數 output 如果第11個整數在前10個整數中,則輸出found 如果第11個整數不在前10...