[英]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.