Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Mongoid:查询值为特定值或未设置值的对象?_Ruby On Rails_Ruby_Mongoid - Fatal编程技术网

Ruby on rails Mongoid:查询值为特定值或未设置值的对象?

Ruby on rails Mongoid:查询值为特定值或未设置值的对象?,ruby-on-rails,ruby,mongoid,Ruby On Rails,Ruby,Mongoid,我试图查询与一组字段匹配的所有对象,没有该字段集将被视为匹配 例如,如果我有以下对象: {"field1":"one", "field2":"two"} {"field1":"two", "field2":"three"} {"field1":"one"} 然后我需要类似于对象的东西。其中(:field1=>“one”,“:field2=>“two”)除了第一个对象之外,还匹配第三个对象。实现这一点的最佳方法是什么?使用$或查询运算符 db.blah.find( { field1:"one"}

我试图查询与一组字段匹配的所有对象,没有该字段集将被视为匹配

例如,如果我有以下对象:

{"field1":"one", "field2":"two"}
{"field1":"two", "field2":"three"}
{"field1":"one"}

然后我需要类似于
对象的东西。其中(:field1=>“one”,“:field2=>“two”)
除了第一个对象之外,还匹配第三个对象。实现这一点的最佳方法是什么?

使用
$或
查询运算符

db.blah.find( { field1:"one"}, $or[{"field1":"one"}, {"field2":"two" } ] } )

这表示查找字段1=1,或字段1=1和字段2=2的位置不完全是我要查找的位置。我在找一个缺席的场地。例如,我想匹配
{}
,而您的示例没有这样做。嗯,我想我理解您现在想要匹配的内容。我的方法将匹配任何具有字段1的记录:“一”,并且您希望限制字段2的缺失。由于Mongo没有模式,我认为这是不可能的,因为它实际上不符合文档的“正常”,集合中的每个文档都是它自己的模式。在上面放一个ORM,你就可以了。Mongo不知道记录三缺少什么,它只知道它有什么。