【问题标题】:How can I retrieve a document by _id?如何通过 _id 检索文档?
【发布时间】:2011-01-15 04:04:04
【问题描述】:

当我有一个对象 ID 时,我正在尝试检索一个文档 - 但是,查询不起作用。

@collection = @db.collection('Mylist')
@result = @collection.find({"_id" => params[:id]})

我已经尝试过查询的变体 - 它总是产生空 - 但是当我尝试对集合进行如下查询时,它会起作用。

@result = @collection.find({"Exist" => "True"}) 

为什么?奇怪的是,复杂的查询可以工作,但通过 _id 进行的简单查询什么也不返回。

如果可能,我不想使用 MongoMapper。

谢谢

【问题讨论】:

  • 找到了——你需要这样包装——find({"_id" => Mongo::ObjectId(params[:id])})
  • 看起来您找到了答案 :) 您应该在下面将其作为“答案”提交。

标签: ruby mongodb


【解决方案1】:

找到了——你需要这样包起来——

find({"_id" => Mongo::ObjectId(params[:id])}) 

【讨论】:

    【解决方案2】:
    find(:_id => BSON::ObjectID(params[:id])
    

    【讨论】:

      【解决方案3】:

      这也可以: @coll.find_one(ObjectID.from_string(params[:id]))

      【讨论】:

        猜你喜欢
        • 2020-11-27
        • 1970-01-01
        • 2020-09-18
        • 2015-10-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-26
        • 2021-07-02
        • 2020-03-14
        相关资源
        最近更新 更多