Mongo delete_many 方法不会从数据库中删除文档
Mongo delete_many method does not remove document from db
我正在尝试从 Rails 中删除 MongoDb 数据库文档。
根据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')}]>
但是如果我在 mongo 中找到 shell:
db.oauth_access_tokens.find({resource_owner_id: ObjectId("00000111111")})
当我不应该得到文件时,我仍然得到了文件。
尝试:
collection.delete_many(:resource_owner_id => BSON::ObjectId("00000111111"))
我正在尝试从 Rails 中删除 MongoDb 数据库文档。
根据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')}]>
但是如果我在 mongo 中找到 shell:
db.oauth_access_tokens.find({resource_owner_id: ObjectId("00000111111")})
当我不应该得到文件时,我仍然得到了文件。
尝试:
collection.delete_many(:resource_owner_id => BSON::ObjectId("00000111111"))