MongoDB:如果字段包含数组,如何删除条目

时间:2018-04-12 17:13:22

标签: mongodb mongodb-query

我有一个将数据上传到MongoDB的javascript应用。我的代码中有一个错误导致数据库条目包含所有先前的条目和新的条目。

例如,我有这个无效的条目:

"created":["4/6/2018 10:45:49 AM","4/6/2018 10:51:07 AM","4/6/2018 10:55:16 AM","4/6/2018 10:56:41 AM"]

我想浏览数据库条目并删除该字段包含数组的所有条目。我想删除整个条目,而不仅仅是字段,因为任何具有多个值的条目都是无效的。

保持这个:

{"created":"4/6/2018 10:45:49 AM"}

删除它:

{"created":["4/6/2018 10:45:49 AM","4/6/2018 10:51:07 AM","4/6/2018 10:55:16 AM","4/6/2018 10:56:41 AM"]}

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用以下代码:

db.col.deleteMany({ created: { $type: 4 } })

$type是一个检查特定字段类型的运算符。值4表示数组。