mongodb 陣列中的元素進行查詢詳解

2021-10-04 19:57:42 字數 974 閱讀 4783

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...