Mongodb
插入對像數組MongoDB問問題
我有
{ "_id" : ObjectId("5a25af80d2c4dd065991dccc"), "username" : "abc@gmail.com", "password" : "$2a$10$ptFyLKtyyrL5gMYdXS6wV.HLUA4Py5iudMJDldf5qsHFS4.9TPCyy", "role" : "Admin", "__v" : 0, "list" : [ { "name" : "We", "arr" : [ "5a26d554677475818a795f75", "5a395bb0976d5304c07f7dd4" ] }, { "name" : "sandeep", "arr" : [ "5a26d554677475818a795f75" ] } ] }
我想在 list.arr 中添加一個元素,其中 name = ‘we’ 並且僅在該元素不存在時添加
我如何執行此查詢。
由於 MongoDB BOL $position MongoDB 3.6為美元選項(
$position Operator
)添加了功能,指示推送操作在數組末尾插入元素。注意: $position 運算符是
MongoDB 3.6.0
. 通過它可以set
插入元素在array
.讓我們從頭開始,這裡我想給你看。如何在 MongoDB 中插入元素。除了 MongoDB,我還提供了簡單的範例,
Pyhon
以便您更好地理解。假設在 Python 中我們有
array
4 個values
類似的對象$$ 0,1,2,3 $$ Python 程式碼範例
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information. >>> array = [1,2,3,4] >>> array[-1] 4 >>> array.insert(-1,5) >>> array [1, 2, 3, 5, 4] >>>
這是看到數組時的 Python 範例
$$ -1 $$. 它將顯示 4。我想
5
在數組中的最後一個元素之前插入數字。正如您在 Python 中看到的那樣。插入程式碼後array.insert(-1,5)
,數組元素為array [1,2,3,5,4]
. 同樣,我想將範例數組元素插入MongoDB
.
position
首先,我在我的 MongoDB 數據庫中創建了集合。然後插入array
with4 document
值。正如你在下面看到的MongoDB 程式碼範例
> db.createCollection("position") { "ok" : 1 } > db.position.insert({array : [1,2,3,4]}) WriteResult({ "nInserted" : 1 }) > db.position.findOne() { "_id" : ObjectId("5a40c6288367f8d601e1e513"), "array" : [ 1, 2, 3, 4 ] } > db.position.update({}, ... {$push : {array : {$each: [5], $position: -1 }}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.position.findOne() { "_id" : ObjectId("5a40c6288367f8d601e1e513"), "array" : [ 1, 2, 3, 5, 4 ] } >
**注意:**請記住,如果
push
沒有dollar position
指定值,則已經將值附加到數組的末尾。對於美元位置的負值,我有更多選項可以在數組中插入值的位置。如果美元位置指定的負整數的絕對值大於然後推送將對象插入到數組的開頭.
這裡我給出了
Python
with的例子MongoDB
。希望這對您有所幫助。
進一步參考數組更新運算符