【发布时间】:2020-12-07 23:30:43
【问题描述】:
我想知道findAndModify 的更新部分中的$concatArrays 是否会复制源数组,向其中添加新元素并将结果保存到目标数组中,还是只是将新元素附加到现有数组中没有提到的副本的数组。
为了更好的说明,这里举个例子:
db.myCollection.findAndModify ( { _id: 2 },
[ { $set: { myArray: { $concatArrays: [ "$myArray", [ 1, 2 ] ] } } } ]
)
Mongo 是否足够聪明,只需将[1, 2] 附加到myArray 而不首先复制myArray?
【问题讨论】:
-
复制
myArray是什么意思?我认为您正在寻找 $push{ $each: []} docs.mongodb.com/manual/reference/operator/update/each/… -
当您使用聚合管道时,您不能在
findAndModify的更新中使用push。通过复制 I if mongo 将存储的数组加载到内存中以便将它与第二个数组连接起来,或者它只是将新元素附加到它
标签: mongodb findandmodify