我已阅读文档并进行了全面搜索,但我找不到如何操作。 如果我在一个集合中有一个文档,并且该文档是一个空数组,我可以像这样删除它:
db.data.remove(array('document'=>array()))
或者像这样:
db.data.remove(array('document'=>[]))
但是如果数组不是空的,它就不起作用,所以我试着这样:
db.data.remove(array('document'=>array('$type'=>4)))
我做错了吗?有没有办法做到这一点? 删除其他标准的文档对我没用。
答案 0 :(得分:2)
修改强> 最后我发现了你的问题。
// test document
{ "_id" : ObjectId("4fe1af4dd404b1863ff20aac"), "document" : [ 1 ] }
$type
运算符查看数组内部,而不是数组本身,因此以下查找不返回任何内容:
db.test.find({document : { $type : 4 } })
现在在我的testcase中文档包含一个double,下面的find返回文档:
db.test.find({document : { $type : 1 } })
{ "_id" : ObjectId("4fe1af4dd404b1863ff20aac"), "document" : [ 1 ] }
另请参阅有关此主题的错误报告: https://jira.mongodb.org/browse/SERVER-1475