首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb elemMatch alex bilbie库

Mongodb elemMatch alex bilbie库
EN

Stack Overflow用户
提问于 2013-06-10 23:19:56
回答 2查看 331关注 0票数 0

我正在使用用于mongo db (https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2)的alex bilbie库。我不知道如何使用这个库来形成elemMatch查询。

我需要将其转换为alexs lib。

代码语言:javascript
复制
db.centers.find(
    {
        '_id': ObjectId('516d3ae30074d35600000001')
    },
    {
        'locations' : {
            '$elemMatch' : { "id" : ObjectId("51b595eabe55b59630000000") }
        }
     }
)
EN

回答 2

Stack Overflow用户

发布于 2013-06-11 19:05:48

解决方案是:

代码语言:javascript
复制
  $m = new Mongo();
  $collection = $m->selectDB('production')->selectCollection("centers");
  $array = array('_id' => new MongoId('516d3ae30074d35600000001'));
  $project = array(
    'locations' => array(
      '$elemMatch' => array('id' =>  new MongoId('51b595eabe55b59630000000'))
     )
   );

    $cursor = $collection->find($array, $project);
    foreach ($cursor as $doc) {
        print_r($doc);
    }

按照Alex lib的说法:您需要将$project数组放在select方法中,而不是where中

票数 1
EN

Stack Overflow用户

发布于 2013-06-10 23:30:00

根据他的repo中的文档,这对你不起作用吗:

代码语言:javascript
复制
$this->mongo_db
->where(array(
    '_id' => ObjectId('516d3ae30074d35600000001'),
    'locations' => array( '$elemMatch' => array( "id" : ObjectId("51b595eabe55b59630000000") ) )
))
->get('centers');

edit:我最初是根据您的问题中的查询复制的。是否确定$elemMatch中的id属性不应为_id

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17027270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档