说我有一个蒙戈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