mongodb query array count

这篇博客探讨了MongoDB数据库中数据结构的表示方式,以一个具体的文档为例,展示了如何通过聚合管道操作查询list内商品的数量。内容涉及$oid、$numberLong等特殊字段类型,以及$match和$project聚合操作的使用,对于理解MongoDB的数据存储和查询具有指导意义。
摘要由CSDN通过智能技术生成

数据库中数据结构:

{
    "_id": {
        "$oid": "607f8fb2f1cf542ae93e0fd6"
    },
    "cal_id": {
        "$numberLong": "2"
    },
    "attach": {
        "goods": {
            "list": [{
                "id": {
                    "$numberLong": "257"
                },
                "name": "商品1",
                "desc": "desc",
                "img_url": "https://www.baidu.com",
                "price": "$200",
                "buy_url": "https://www.baidu.com"
            }, {
                "id": {
                    "$numberLong": "258"
                },
                "name": "商品2",
                "desc": "desc",
                "img_url": "https://www.baidu.com",
                "price": "$20",
                "buy_url": "https://www.baidu.com"
            }]
        }
    }
}

(返回数组中元素的数量)查询list中包含的商品数量sql语句:

(mongo Shell 中执行)

db.config.aggregate([{$match:{"cal_id":2}},{$project:{count:{ $size: "$attach.goods.list" }}}])

//拼接聚合条件:1.筛选符合日程的document2.返回商品数组中商品数量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值