我在這裏做錯了什麼?我知道_id在數據庫中,但是我得到空的結果。Ruby Mongo驅動程序 - Find_by_Id
@b = coll.find("_id" => "4db2ebee90036f010b000001")
感謝
我在這裏做錯了什麼?我知道_id在數據庫中,但是我得到空的結果。Ruby Mongo驅動程序 - Find_by_Id
@b = coll.find("_id" => "4db2ebee90036f010b000001")
感謝
使用此:
coll.find(:_id => BSON::ObjectId('4db2ebee90036f010b000001')).each do |data|
puts data.inspect
end
@b將包含一個光標,而不是結果。您還需要使用適當的對象ID。
你可能想這樣的:
@b = coll.find_one(:_id => BSON::ObjectId('4db2ebee90036f010b000001'))
使用Ruby 1.9.3和3.0.19 mongoid
@coll = Coll.find(hash["_id"])
或
@coll = Coll.find("511296d2dfa18f07fa000009")
查找記錄。只會是一個,_id是主鍵,它永遠不會是雙重的。
我會使用類似first
的東西,它會返回一個對象,因爲如果您的主ID在數據庫中重複出現問題,那麼您的問題會更大。語法取決於你的mongo gem版本,這個版本用於2.1.0。
your_id = '4db2ebee90036f010b000001'
db = Client.new([ "localhost:27017" ], :database => "db")
coll = db[:testCollection]
res = coll.find(:_id => BSON::ObjectId(your_id)).first
使用,紅寶石版本2.3.1p112,蒙戈(GEM)2.4.2和BSON(GEM)4.2.2
以下爲我工作
client = Mongo::Client.new(['127.0.0.1:3001'], :database=>'dbname')
collection = client[:users]
user = collection.find({_id:'XY3h5R7aJkh5FxFhJ'}).first
它,如果任何回報你在db中執行相同的操作? – 2011-04-26 15:15:13
@Vlad,我使用的是MongoHQ,實際上當我搜索{_id:「4db2ebee90036f010b000001」}我沒有得到任何結果。但是,我不明白爲什麼。該行在那裏。 – donald 2011-04-26 15:20:53