这是我的示例文档:
{
keys: {
attr1: ['a', 'b', 'c'],
attr2: ['d', 'e']
}
}
我这样删除数组中的项目...
{
$pullAll: {
'keys.attr2': ['d', 'e']
}
}
这给attr2字段留下了一个空数组:
{
keys: {
attr1: ['a', 'b', 'c'],
attr2: []
}
}
但是我想做的是如果该字段现在为空,那么我想要$unset
该字段,以便最终结果如下所示:
{
keys: {
attr1: ['a', 'b', 'c']
}
}
我想在一次查找和更新操作中完成此操作。
感谢您的帮助。
答案 0 :(得分:0)
不幸的是,这是不可能的。您无法在执行更新操作的同时执行其他匹配。但是,您可以执行第二次更新,该更新与一个空数组匹配,然后取消设置该字段。
这只是您必须解决的限制。