說我有一個蒙戈DB,看起來像這樣的文件:是否可以在MongoDB文檔的數組中插入元素?
{
pages: [
{
elements: [
{id:1},
{id:2},
{id:3}
]
},
{
elements: [
...
]
}
]
}
和元素的網頁中的順序具有語義(例如,疊加)。現在說我想在第一頁的第二個元素之前添加一個新元素。所得到的文檔的期望狀態是這樣的:
{
pages: [
{
elements: [
{id:1},
{id:4}, // <------ element inserted here
{id:2},
{id:3}
]
},
{
elements: [
...
]
}
]
}
在Mongo docs我看到如何將元素添加到該陣列的端部,以及如何更新現有元素的值,而不是如何插入數組的中間(PHP的array_splice)。這是唯一可能的重新分配整個數組到一個新的數組與中間插入所需的元素?
雖然MongoDB中存儲其在BSON格式的數據,它肯定不會讓你插入/更新*前預BSONize它和*它保留了數組元素的順序。答案可能是「不,MongoB不能這樣做」,但我認爲我的問題仍然有效。 – brnt