Mongodb 删除mongo集合中具有给定BSON类型的_id属性的文档
我有一个集合,其中每个文档的Mongodb 删除mongo集合中具有给定BSON类型的_id属性的文档,mongodb,removeall,Mongodb,Removeall,我有一个集合,其中每个文档的\u id都是字符串类型。由于某些问题,我们插入了一些类型为ObjectId的_id错误的文档 { "_id": "M123", "title": "Test", ... } { "_id": ObjectId("566de977e4b075b86383b629"), "title": "Test", ... } 现在我想删除所有与第二个类似的文档。有没有办法将此查询指定为db.Collection1.remove() 我尝试在谷歌上搜索,在
\u id
都是字符串类型。由于某些问题,我们插入了一些类型为ObjectId
的_id错误的文档
{
"_id": "M123",
"title": "Test",
...
}
{
"_id": ObjectId("566de977e4b075b86383b629"),
"title": "Test",
...
}
现在我想删除所有与第二个类似的文档。有没有办法将此查询指定为db.Collection1.remove()
我尝试在谷歌上搜索,在那里我找到了指定特定字段值条件而不是其类型的查询。我可以使用以下查询删除带有ObjectId类型的_id的行
db.Collection1.remove({"_id":{$type: 7}})
这适用于3.0之前的旧版本mongo
对于较新版本,您还可以使用
db.Collection1.remove({"_id":{$type: "objectId"}})
请看,我尝试了以下查询。count()2016-03-17T16:26:25.271+0530 E查询错误:count失败:{“code”:10061,“ok”:0,“errmsg”:“exception:类型不支持appendMinElementForType”}错误()位于DBQuery.count(src/mongo/shell/QUERY.js:326:11)(shell):1:44在src/mongo/shell/query.js:326只有MongoDB 3.2才支持
“alias”
值。所有版本都使用数字值。例如,只需使用BSON类型为“string”db.Album.find({“\u id”:{“$type”:2}})的BSON类型查找\u id
,这当然是BSON类型2
的数字形式。感谢@BlakesSeven,我能够使用查询“db.Collection1.remove({“\u id”:{$type:7})”来删除文档