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})”来删除文档