Mongodb 多条件数组嵌套查询

数据结构:

[
    {
        "from_site": "sosovalue",
        "id": "e7b0311a8b2f49ec8ba6736980602efc",
        "name": "Daily Total",
        "search_name": "bitcoin spot etf daily total",
        "last_updated": 1710227808551,
        "last_updated_utc": "2024-03-12 07:16:48.551212",
        "total_page": "1",
        "total": "41",
        "list": [
            {
                "id": "1766329029461434369",
                "data_date_utc": "2024-03-08 00:00:00",
                "data_date_timestamp": 1709856000,
                "total_net_inflow": 222986549.0,
                "total_volume": 7691454370.0,
                "total_net_assets": 55499316412.0,
                "total_cum_net_inflow": 9588465608.095,
                "total_net_inflow_change": -0.005281231226684967,
                "total_volume_change": 0.006257883132371463,
                "total_net_assets_change": 0.0002607192862848633,
            },
            {
                "id": "1766030876727517185",
                "data_date_utc": "2024-03-07 00:00:00",
                "data_date_timestamp": 1709769600,
                "total_net_inflow": 472552396.0,
                "total_volume": 4730907651.0,
                "total_net_assets": 54089109022.0,
                "total_cum_net_inflow": 9365479059.095,
                "total_net_inflow_change": 0.0042307911230247686,
                "total_volume_change": 0.0006264197177240608,
                "total_net_assets_change": 0.00018353606574301982,
            }
        ]
    }
]

我想以 “name”: “Daily Total”,和list中的id为条件,做查询语句,但是网上的一些写法总是不能够很好的过滤掉list中不符合的字段。
通常的写法是这样:

db.bitcoin_etf_tracker.find({
  "name": "Daily Total",
  "list.id": "1766329029461434369"
}
)

这样的写法,查询的结果是list.id过滤条件完全不起作用,
在这里插入图片描述

有效的写法

db.bitcoin_etf_tracker.find({
  "name": "Daily Total",
  "list.id": "1766329029461434369"
},
{
  "_id": 0,
  "name": 1,
  "list.$": 1
}
)

在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值