Ruby on rails Mongoid不在查询中
我在mongoid上遇到了一些问题:Ruby on rails Mongoid不在查询中,ruby-on-rails,ruby,mongodb,mongoid,nosql,Ruby On Rails,Ruby,Mongodb,Mongoid,Nosql,我在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, :se
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中使用“不在”条件
PS,“second”可以,通过了“first”测试,因为id=1请尝试以下查询:
user = User.not_in(:_id => [2]).second
在MongoDB中,主键具有名称\u id
。Mongoid试图表现友好,并通过在对象模型中将其别名为id
,部分地向开发人员隐藏这一事实。但当您进行查询时,它无法判断您想要的是主键\u id
还是一些完全普通的字段id
user = User.where(:id.nin => [2,3,4,5])
这是根据mongoid官方文件: