2017-07-19 66 views
0

我想從Rails中刪除一個MongoDb數據庫文檔。Mongo delete_many方法不會從分區中刪除文檔

按照mongodb docs,這是做它的方式:

db = Mongoid::Clients.default 
collection = db[:oauth_access_tokens] 
collection.delete_many({"resource_owner_id": "xxxxxxxxxxxxxx"}) 

根據這個結果我得到它應該是罰款:

<Mongo::Operation::Result:58395820 documents=[{"ok"=>1, "n"=>0, "opTime"=>{"ts"=>#<BSON::Timestamp:0x00000006f62380 @seconds=1500457271, @increment=1>, "t"=>2}, "electionId"=>BSON::ObjectId('xxxxxxxxxxxxxxxxx')}]> 

不過,如果我發現在蒙戈外殼:

db.oauth_access_tokens.find({resource_owner_id: ObjectId("00000111111")}) 

我仍然得到文件,當我不應該。

+0

你的結果說' 「N」=> 0'這意味着沒有匹配的文件刪除。如果'resource_owner_id'是ObjectID類型,請確保在'delete_many'過濾器中發送ObjectID。 –

回答

1

嘗試:

collection.delete_many(:resource_owner_id => BSON::ObjectId("00000111111")) 
+0

它完美的作品! –