Khi tôi sử dụng Mongo-ruby-lái xe và tôi chèn tài liệu mới nó trả về tạo '_id':Moped: get id sau khi chèn
db = MongoClient.new('127.0.0.1', '27017').db('ruby-mongo-examples')
id = db['test'].insert({name: 'example'})
# BSON::ObjectId('54f88b01ab8bae12b2000001')
Tôi đang cố gắng để có được những '_id' của một tài liệu sau thực hiện chèn bằng cách sử dụng Xe máy:
db = Moped::Session.new(['127.0.0.1:27017'])
db.use('ruby-mongo-examples')
id = db['coll'].insert({name: 'example'})
# {"connectionId"=>15, "n"=>0, "syncMillis"=>0, "writtenTo"=>nil, "err"=>nil, "ok"=>1.0}
Làm cách nào để có id sử dụng Xe máy?
Cập nhật:
tôi cũng cố gắng sử dụng chế độ an toàn nhưng nó không hoạt động:
db = Moped::Session.new(['127.0.0.1:27017'])
db.use('ruby-mongo-examples')
db.with(safe: true) do |safe|
id = safe['coll'].insert({name: 'example'})
# {"connectionId"=>5, "n"=>0, "syncMillis"=>0, "writtenTo"=>nil, "err"=>nil, "ok"=>1.0}
end
Bạn có thể nhận được phản hồi nếu bạn thực hiện [chèn an toàn] (http://mongoid.org/en/moped/) hoặc tạo nó trước khi chèn như 'document = {_id: Moped :: BSON :: ObjectId .new, name: "example"} id = document [: _ id] ' – chridam
Tôi đã tìm thấy sự cố này: https://github.com/mongoid/moped/issues/129. Có vẻ như cách duy nhất là id generte với BSON :: ObjectId.new và sử dụng nó. Cảm ơn @chridam. – drinor
Tôi nghĩ câu trả lời của @ hamster_ham phù hợp hơn tôi, gọi điện của bạn để chấp nhận nó. – chridam