Mongodb 将元素推送到子文档中数组的任意位置
在MongoDB 2.6中,我们可以使用Mongodb 将元素推送到子文档中数组的任意位置,mongodb,mongoose,mongodb-query,Mongodb,Mongoose,Mongodb Query,在MongoDB 2.6中,我们可以使用$position()修饰符在文档中的数组更新期间指定数组中的位置。但是我想在子文档中插入一个数组 文档架构: { subdoc: { array: ['0', '1', '2', '5', '6'] } } 以下更新将推送数组末尾的元素 db.collection.update( { _id: tsId }, {$push: { 'subdoc.array': { $each:['3', '4'], $position:3
$position
()修饰符在文档中的数组更新期间指定数组中的位置。但是我想在子文档中插入一个数组
文档架构:
{
subdoc: {
array: ['0', '1', '2', '5', '6']
}
}
以下更新将推送数组
末尾的元素
db.collection.update(
{ _id: tsId },
{$push: { 'subdoc.array': { $each:['3', '4'], $position:3 } }});
因此,结果是
{
subdoc: {
array: ['0', '1', '2', '5', '6', '3', '4']
}
}
但我想
{
subdoc: {
array: ['0', '1', '2', '3', '4', '5', '6']
}
}
在MongoDB 2.6中有可能吗?在您的问题中,这是一个公平的命题,但是您的概念基本上是错误的 第一个问题是,您忽略了一个概念,即数组的条目通常从第一个元素的索引
0
开始,因此在这种情况下,您的“定位”超出了一个单位,应该是:
db.collection.update(
{u id:tsId},
{$push:{'subdoc.array':{“$each”:[“3”,“4”],“$position”:3}}
)
既然你现在在正确的位置插入,那么你的元素就在正确的位置。在你的问题中,这是一个公平的命题,但是你的概念基本上是错误的 第一个问题是,您忽略了一个概念,即数组的条目通常从第一个元素的索引
0
开始,因此在这种情况下,您的“定位”超出了一个单位,应该是:
db.collection.update(
{u id:tsId},
{$push:{'subdoc.array':{“$each”:[“3”,“4”],“$position”:3}}
)
既然你现在在正确的位置插入,那么你的元素就在正确的位置。在你的问题中,这是一个公平的命题,但是你的概念基本上是错误的 第一个问题是,您忽略了一个概念,即数组的条目通常从第一个元素的索引
0
开始,因此在这种情况下,您的“定位”超出了一个单位,应该是:
db.collection.update(
{u id:tsId},
{$push:{'subdoc.array':{“$each”:[“3”,“4”],“$position”:3}}
)
既然你现在在正确的位置插入,那么你的元素就在正确的位置。在你的问题中,这是一个公平的命题,但是你的概念基本上是错误的 第一个问题是,您忽略了一个概念,即数组的条目通常从第一个元素的索引
0
开始,因此在这种情况下,您的“定位”超出了一个单位,应该是:
db.collection.update(
{u id:tsId},
{$push:{'subdoc.array':{“$each”:[“3”,“4”],“$position”:3}}
)
既然现在插入的位置正确,那么元素就位于正确的位置。新运算符的良好用法示例新运算符的良好用法示例新运算符的良好用法示例新运算符的良好用法示例新运算符的良好用法示例新运算符的良好用法示例