ruby on rails - Mongoid no en consulta
ruby-on-rails mongodb (2)
Prueba esta consulta:
user = User.not_in(:_id => [2]).second
En MongoDB la clave primaria tiene el nombre _id
. Mongoid trata de ser amigable y oculta parcialmente este hecho al desarrollador mediante un alias en id
en el modelo de objetos. Pero cuando realiza consultas, no puede saber si desea una clave primaria _id
o algún id
campo completamente ordinario.
Tengo algunos problemas con 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
Prueba fallida He intentado usar where (: id => {''$ nid'' => [2]}), pero tiene el mismo efecto.
¿Qué está mal? ¿Cómo usar la condición "no en" con mongoid?
PS, "segundo" está bien, con "primera" prueba aprobada, porque id = 1
user = User.where(:id.nin => [2,3,4,5])
Esto es según el documento oficial de mongoid: http://mongoid.org/en/origin/docs/selection.html