我有以下查詢MongoDB中如何在MongoDB中的查詢中使用ObjectId?
$this->createQueryBuilder()
->field('actor')->in($actorIdArray)
->getQuery()
->execute();
在現場演員與註釋
@MongoDB\ReferenceOne(targetDocument="User", simple=true)
的對象引用,這意味着它將代替存儲完整的參考的對象ID。
當$ actorIdArray是ID與形式
["5706cb39821b166d3931f34f", "56015f7d4f8bd90b769e6e75"]
查詢不返回任何結果,這是預期的,因爲提起演員包含對象ID的數組。
但是,如果我建立數組這樣
[new MongoId("5706cb39821b166d3931f34f"), new MongoId("56015f7d4f8bd90b769e6e75")]
它也不管用,這對我來說是相當驚人的。
日誌顯示的查詢時
{ "actor": {"$in":[{"$id":"5706cb39821b166d3931f34f"},{"$id":"56015f7d4f8bd90b769e6e75"}]}}
,我認爲它應該是這樣的
{ "actor": {"$in":[ObjectId("5706cb39821b166d3931f34f"),ObjectId("56015f7d4f8bd90b769e6e75"]}}
不知道如果我做錯了什麼, 任何想法?
它必須是來自ODM的文檔數組。 – Alsatian
如果你想避免對象加載,請使用參考http://www.doctrine-project.org/api/mongodb_odm/1.0/class-Doctrine.ODM.MongoDB.DocumentManager.html#_getReference – Alsatian
@Alsatian此查詢可以工作如果我從控制檯執行它 {「演員」:{「$在」:的ObjectId(「5706cb39821b166d3931f34f」)的ObjectId(「56015f7d4f8bd90b769e6e75」]}} 所以沒有必要使用的文件的數組。 – Fran