【问题标题】:symfony2 mongodb reference query field()->in()symfony2 mongodb 参考查询 field()->in()
【发布时间】:2012-07-29 17:21:08
【问题描述】:

我对来自存储库类的查询有疑问。

我需要这个结果用于 mongodb

db.RequestsPictures.find({ 
    "picture.$id": {
        "$in":[
            ObjectId("5013a65dd1853eb02c000000"), 
            ObjectId("5013a47dd1853e4919000001")
        ] 
    }
}).sort([ ]);

此查询在 MongoDB 中运行良好,但我不知道如何使用 QueryBuilder 编写此查询。

如果我测试这段代码 - 教义会设置错误的引号

   $ids = array(
        'ObjectId("5013a65dd1853eb02c000000")',
        'ObjectId("5013a47dd1853e4919000001")'
    );

    $ids = implode(',', $ids);
    return $this->createQueryBuilder()
        ->field('picture.$id')
        ->in(array($ids))
        ->getQuery()
        ->execute()
        ->toArray();

这段代码的结果:

db.RequestsPictures.find({ 
    "picture.$id": {
        "$in": [         
            "ObjectId("5013a65dd1853eb02c000000"),      
            ObjectId("5013a47dd1853e4919000001")" 
        ] 
    }
}).sort([ ]);

[ 之后和] 之前的引号是不必要的。

那么你能告诉我如何禁用QueryBuilder 中的自动引号吗?

【问题讨论】:

    标签: mongodb symfony doctrine


    【解决方案1】:

    解决办法:

     $ids = array(
        new \MongoId('5013a65dd1853eb02c000000'),
        new \MongoId('5013a47dd1853e4919000001')
    );
    
    return $this->createQueryBuilder()
                ->field('picture.$id')
                ->in($ids)
                ->getQuery()
                ->execute()
                ->toArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 2021-02-22
      • 2021-01-30
      • 2017-04-07
      • 1970-01-01
      相关资源
      最近更新 更多