前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongodb取得数组元素中的匹配项目。

mongodb取得数组元素中的匹配项目。

作者头像
xiny120
发布2019-11-04 16:24:14
2.1K0
发布2019-11-04 16:24:14
举报
文章被收录于专栏:毛毛v5毛毛v5
代码语言:javascript
复制
db.getCollection('forum').find({'_id':ObjectId('5d78ae69212b78725e27a0c3')},{'childboard':{$elemMatch:{'_id':ObjectId('5d78ae6a212b78725e27a0ca')}}})

汗了,本来想把这个语句翻译成php,但是搞来搞出都是选出所有数组。无解了。 后来baidu到一个projection得childboard.$:1..居然可以。。。

具体得mongodb的query string是:

代码语言:javascript
复制
db.getCollection('forum').find({'_id':ObjectId('5d78ae69212b78725e27a0c3'),'childboard._id':ObjectId('5d78ae6a212b78725e27a0d2')},{'childboard.$':1})

翻译成php代码:

代码语言:javascript
复制
        $filter  = [
            '_id' => new MongoDB\BSON\ObjectID("5d78ae69212b78725e27a0c3"),
            'childboard._id' => new MongoDB\BSON\ObjectID($document->foid),
        ];
        $options = [    
            /* Only return the following fields in the matching documents */
            'projection' => [
                'childboard.$' => 1,
            ],    
        ];
        $mongo = new MongoDB\Driver\Manager(DB_MONGODB);
        $query1 = new \MongoDB\Driver\Query($filter, $options);
        $rows   = $mongo->executeQuery(DB_MONGODB_DB.'.forum', $query1);
        foreach($rows as $document) {
           var_dump($document);
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档