MongoID docs似乎非常清楚,我应该能够运行它并让它工作:

Band.find_by(name: "Photek")

但至少在MongoID 2.4.11中,这给了我NoMethodError分.

另一方面,这是可行的:

Band.find(name: "Photek")

find_by改成find很容易,但我不知道发生了什么.在这种情况下,我的gem版本是在文档后面,还是什么?

推荐答案

Mongoid文档现在默认显示版本3(它是一个RC).你想看看Mongoid 2的docs here.

On find vs find_by, this is from the upgrade guide for Mongoid 2 -> 3:

模型寻找并建模.关系现在查找只获取一个或多个ID.模型首先是模型.最后也不再接受争论.对于这些使用模型.取而代之的是找到你.

瞧:

Mongoid 2:

Band.find(some_id)
Band.find(name: "Billy Talent")

Mongoid 3:

Band.find(some_id)
Band.find(some_id, some_other_id)
Band.find_by(name: "Billy Talent")

Mongodb相关问答推荐

MongoDB聚合:将文档列表转换为列表

获取文档字段名并将其作为嵌套字段添加到聚合中

在数组对象 Mongodb 中仅 Select 需要的数组

优化游戏应用程序的反馈表单后端设计

如何 db.getUser() 使用 go mongo-driver

在运算符 $map 中嵌入运算符 $exists

没有mongoose 的 Express 和 MongoDB

CouchDB 或 MongoDB 中的哪一个适合我的需求?

MongoDB - 如果新值更大,则更新字段

Mongoid 有 Map/Reduce 吗?

无法连接到mongolab主机

如何在 MongoDB 中进行内部连接?

.NET 4 中是否有 mongodb C# 驱动程序支持 System.Dynamic.DynamicObject?

将 mongoose 字符串模式类型默认值设为空白并使该字段可选

Mongodb 约定包

使用 mongoimport 将日期(ISODate)导入 MongoDB

无法连接到远程 mongodb 服务器

在 MongoDB 中为现有用户更改密码

无法连接到远程服务器上的 mongo

通过 Java 执行 Mongo like Query (JSON)