Mongoid不在查询中

我对mongoid有些麻烦:

test "Test candidate" do User.create(:id => 1, :sex => User::Male, :country => 1, :city => 1) User.create(:id => 2, :sex => User::Female, :country => 1, :city => 1) User.create(:id => 3, :sex => User::Female, :country => 1, :city => 1) user = User.not_in(:id => [2]).second assert_not_equal(user.id, 2) end 

测试失败。 我曾尝试使用where(:id => {‘$ nid’=> [2]}),但它具有相同的效果。

怎么了? 如何使用mongoid“not in”条件?

PS,“秒”是好的,通过“第一次”测试,因为id = 1

试试这个查询:

 user = User.not_in(:_id => [2]).second 

在MongoDB中,主键的名称为_id 。 Mongoid尝试友好,并通过将其别名化为对象模型中的id来部分隐藏开发人员的这一事实。 但是,当您进行查询时,它无法判断您是否需要主键_id或某些完全普通的字段id

 user = User.where(:id.nin => [2,3,4,5]) 

这是根据mongoid官方文档: http ://mongoid.org/en/origin/docs/selection.html