2017-07-19 63 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

它完美的作品! –