[英]Is it possible to insert an element into the middle of an array in a MongoDB document?
假設我在mongo DB中有一個文檔,看起來像這樣:
{
pages: [
{
elements: [
{id:1},
{id:2},
{id:3}
]
},
{
elements: [
...
]
}
]
}
並且頁面內元素的順序具有語義(例如,堆疊)。 現在說我想在第一頁的第二個元素之前添加一個新元素。 結果文檔的期望狀態是這樣的:
{
pages: [
{
elements: [
{id:1},
{id:4}, // <------ element inserted here
{id:2},
{id:3}
]
},
{
elements: [
...
]
}
]
}
在Mongo文檔中,我看到了如何在數組的末尾添加元素以及如何更新現有元素的值,但是沒有看到如何插入數組的中間(如PHP的array_splice )。 僅通過將整個數組重新分配到中間插入了所需元素的新數組,才有可能嗎?
MongoDB現在支持此功能。 您可以使用$ position運算符將元素插入數組的中間。
祝好運
您不應該將層號存儲為數組元素的屬性嗎? BSON規范說數組是鍵-值對,因此您需要使用層號作為數組中的鍵。(MongoDB使用BSON來存儲數據)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.