You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MongoDB中筛选含tyre:MRF的字符串化嵌套对象文档?

筛选包含tyre: MRF的文档ID

针对你这种accessories.data是字符串化JSON对象的情况,有两种实用方法可以筛选出目标文档的ID:

方法一:正则匹配(兼容所有MongoDB版本)

直接通过正则匹配字符串中包含的"tyre":"MRF"子串,同时只返回_id字段:

db.collection.find(
  { "accessories.data": /"tyre":"MRF"/ },
  { _id: 1 }
)

这种方法简单直接,不需要解析JSON,适合低版本MongoDB。

方法二:解析JSON字符串(MongoDB 4.4+支持)

如果你的MongoDB版本在4.4及以上,可以先把字符串化的JSON解析成对象,再精准匹配tyre字段的值:

db.collection.find(
  {
    $expr: {
      $eq: [ 
        { $getField: { field: "tyre", input: { $parseJSON: "$accessories.data" } } }, 
        "MRF" 
      ]
    }
  },
  { _id: 1 }
)

这种方法更严谨,能避免正则可能出现的误匹配(比如字符串中其他位置刚好出现相同子串的情况)。

两种方法都会自动排除像_id: '2'这种没有accessories.data字段的文档。

内容的提问来源于stack exchange,提问作者Dejavu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:22:43