2016-03-17 40 views
0

我有一個集合,其中每個文檔的_id都是字符串類型。由於某些問題,我們插入了一些錯誤的_id類型爲ObjectId的文檔。使用給定BSON類型的_id屬性刪除mongo集合中的文檔

{ 
    "_id": "M123", 
    "title": "Test", 
    ... 
} 
{ 
    "_id": ObjectId("566de977e4b075b86383b629"), 
    "title": "Test", 
    ... 
} 

現在我想刪除所有與第二個類似的文檔。有沒有什麼辦法指定這個查詢到db.Collection1.remove()

我試着在谷歌上搜索,在那裏我發現查詢指定特定字段值的條件而不是它們的類型。

+0

參見['$ type'(https://docs.mongodb.org/手冊/參考/運營商/查詢/類型/) –

+0

我試過以下查詢。 db.Collection1.find({「_ id」:{$ type:「objectId」}})。count() 2016-03-17T16:26:25.271 + 0530 E QUERY錯誤:計數失敗:{ \t「code」 :10061, \t 「OK」:0, \t 「ERRMSG」:在DBQuery.count(SRC /蒙戈/殼/ query.js: 「類型不支持appendMinElementForType異常」 } 在誤差() : (shell):1:44 at src/mongo/shell/query.js:326 –

+0

只有MongoDB 3.2支持''alias''值。 **所有**版本都使用數字值。例如,只需找到BSON類型爲「string」db.Album.find({「_id」:{「$ type」:2}})「'_id',這當然是BSON類型'2'的數字。 –

回答

0

我可以使用以下查詢刪除_id類型爲ObjectId的行。

db.Collection1.remove({"_id":{$type: 7}}) 

這是舊版本的蒙戈的3.0 對於新版本之前,您還可以使用

db.Collection1.remove({"_id":{$type: "objectId"}}) 
相關問題