0

我正在为 MongoDB 学习 Doctrine 2 ODM 并且有一个直截了当的问题,我无法在 Doctrines 文档或谷歌上找到答案。

假设我在同一个集合中有以下两个文档

{ "_id" : ObjectId("51c8a962f6d6ace76b374219"), 
"X" : 26, 
"Name" : "some name", 
"Level" : "Common"
}
{ 
"_id" : ObjectId("51c8a9bef6d6ace76b37421a"), 
"Y" : 1, 
"Name" : "Other name", 
"Level" : "Common"
}

我知道我可以找到所有具有 Level : Common using 的文档

$dm->getRepository('Search\Model')->findBy(array("Level" => "Common"));

但是我怎样才能找到字段类型为“X”而不是“Y”的所有文档?我知道我可以全部返回并将其过滤掉,但我应该能够查询这个吗?因为字段类型 X 和 Y 不同,它们应该在单独的集合中吗?

我还尝试了使用查询生成器(如 Doctrine 文档中的查询生成器)的各种查询,但没有运气。

我真的希望能够返回该集合中只有“X”的所有文档。

非常感谢

4

1 回答 1

0

您可以在此处使用否定运算符:

$dm->getRepository('Search\Model')->findBy(array("X" => 26, "Y" => array('$ne'=>1)));
于 2013-06-26T08:38:29.973 回答