我有一个收藏 检验 与一个记录。
[{ number:"1524",
name:null,
cat_id:"126842"},
{number:"456",
name:null,
cat_id:null }]
如何删除整个行有空值这样的。
[{ number:"1524",
cat_id:"126842" },
{ number:"456"}]
我试过这样做,但是整个记录都被删除了,而不仅仅是行。
collection.deleteMany( { $or: [{cat_id : null },{ name : null }]
需要在一个查询中删除多个变量。
MongoDB 4.0版本
在MongoDB中,$unset操作符用来删除一个特定的字段。
你可以尝试使用下面的命令来删除空的字段。
collection.updateMany({name: null}, { $unset : { name : 1 }})
该命令将删除 名称 名的所有文件中的字段。null
. 你也可以对cat_id执行类似的命令。
编辑: 根据我在另一个问题中得到的回答,你也可以用下面的方法在一个命令中做同样的事情----。
collection.updateMany({
$or : [{
name : null
}, {
cat_id : null
}]
}, [{
$set: {
name : { $ifNull : ["$hobby", "$$REMOVE"] },
cat_id : { $ifNull : ["$Roll_no", "$$REMOVE"] }
}
}]
);
但是,这只能在MongoDb V4.2及以上版本中进行。您也可以查看 这个 的另一种方法。
希望对大家有所帮助!