0
我正在學習MongoDB的Doctrine 2 ODM,並有一個簡單的問題,我無法在Doctrines文檔或谷歌上找到答案。學說MongoDB ODM
說我有相同的集合
{ "_id" : ObjectId("51c8a962f6d6ace76b374219"),
"X" : 26,
"Name" : "some name",
"Level" : "Common"
}
{
"_id" : ObjectId("51c8a9bef6d6ace76b37421a"),
"Y" : 1,
"Name" : "Other name",
"Level" : "Common"
}
我知道我能找到具有級別的所有文件在以下兩個文件:共同使用
$dm->getRepository('Search\Model')->findBy(array("Level" => "Common"));
但我怎麼能找到的所有文件,其中字段類型是「X」而不是「Y」? 我知道我可以返回所有並過濾掉,但我應該能夠查詢這個權利? 因爲字段類型X和Y是不同的,他們應該在一個單獨的集合?
我也試過使用查詢生成器的各種查詢,如在Doctrine文檔中,但沒有運氣。
我真的希望能夠返回那個集合中只有「X」的所有文檔。
非常感謝
感謝您的答覆。我真正想要的是找到所有具有X字段但不是Y的文檔。是否有一個通配符,我可以使用上面的X值....我猜最近的SQL等價物將是SELECT * from TABLE其中Column = X – user12345
@ sb12您可以使用'存在',這將判斷該字段實際存在於文檔中:http://docs.mongodb.org/manual/reference/operator/exists/ – Sammaye
感謝您的答覆。我會認爲這樣的事情很常見。我允許文檔中的不同字段的原因是由於mongo的無模式性質,因此假定查詢將是直接的。從學說docs我找不到方法來返回我所需要的。返回集合中的所有文檔並處理應用程序中的過濾是否是最佳實踐?我猜測性能不是問題,因爲返回遊標而不是所有數據?感謝您的幫助 – user12345