Mongodb - 删除数组字段中所有元素的正确方法?

UpT*_*eek 32 mongodb

我正在寻找从Mongodb中的数组字段(跨所有文档)中删除所有元素的正确方法 - 这些似乎是等效的,建议:(或者可能是其他方式?)

db.collection.update({}, { $pull : { 'myArray': {} }}, {multi:true} )
Run Code Online (Sandbox Code Playgroud)

要么

db.collection.update({}, { $set : {'myArray': [] }} , {multi:true} )
Run Code Online (Sandbox Code Playgroud)

Der*_*ick 27

$set变种会更快的$pull将不得不做的阵列计算.我实际上甚至不确定它是否会起作用,因为你并没有真正删除查询中的任何元素.


Nic*_*udo 6

只是为了确定,您是否需要保留一个空数组?因为否则,它可能会更好$unset

如果您必须保留一个空数组,我相信您的$pull调用将不起作用 - 我认为它将从您的数组中删除所有空元素,而不是所有元素。