如何在Mongoid中查询多个ID?

kid*_*tal 1 ruby-on-rails mongodb mongoid mongoid4

如果我有几个ID,请说 [1,2,3]

是否可以在Mongoid中一次查询所有内容?如:

User.where({ id: [1,2,3]}) 或类似的东西?

mu *_*ort 6

您正在寻找的基础MongoDB查询将使用$in运算符:

在$操作者选择其中一个场的值等于指定数组中的任何值的文件.

在MongoDB中,你会说:

db.users.find({ id: { $in: [1,2,3] } })
Run Code Online (Sandbox Code Playgroud)

这直接转换为Mongoid:

User.where(id: { :$in => [1,2,3] })
Run Code Online (Sandbox Code Playgroud)

Mongoid修补了大多数(全部?)查询运算符,Symbol所以你通常会说:

User.where(:id.in => [1,2,3])
Run Code Online (Sandbox Code Playgroud)


小智 5

聚会有点晚,但您可以将一组 ID 传递给 find() 方法。

User.find(ids)
Run Code Online (Sandbox Code Playgroud)

  • `User.find(ids)` 将返回一个普通的 Ruby 数组。例如,如果您想对结果进行批量数据库操作,最好使用 User.where(:id.in => [1,2,3])`。 (2认同)