当前位置:  开发笔记 > 后端 > 正文

使用Ruby检索唯一记录将MongoDB _id转换为ObjectID对象

如何解决《使用Ruby检索唯一记录将MongoDB_id转换为ObjectID对象》经验,为你挑选了1个好方法。

我正在尝试使用标准类型ObjectID的_id检索存储在MongoDB中的文档.我将_id表示为字符串.在这个例子中它是"4ec064e406a6f1205a000001"

所以我这样做:

require 'mongo'

connection = Mongo::Connection.new("localhost", 27017).db("store")
collection = connection.collection("products")

id = '4ec064e406a6f1205a000001'

# What should the following line be? This doesn't work.
collection.find_one("_id" => Mongo::ObjectID.from_string(id))

我意识到这是一个BSON ObjectID,我尝试了一些不同的方法来使用bson gem生成正确的对象,但我无法让它工作.我也尝试使用类似的代码将对象的_id中的一个更改为标准的Int32,并且它工作正常.我不知道如何创建用于此查询的正确ObjectID对象.

谢谢!



1> Jesse Wolgam..:

以下是将字符串转换为BSON ObjectID的正确语法:

collection.find_one({:_id => BSON::ObjectId("4ec064e406a6f1205a000001")})

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有