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

如何在MongoDB Shell中查询嵌套模型并输出指定格式数据?

MongoDB Shell查询:输出资源ID对应合同ID及状态

没问题,我来帮你实现这个需求!假设你的Resources集合中文档的结构大致包含一个存储合同信息的数组(比如contracts),类似这样:

{
  "_id": "res_123",
  "contracts": [
    {"contractId": "con_456", "status": "active"},
    {"contractId": "con_789", "status": "expired"}
  ],
  // 其他字段...
}

你可以在Mongo Shell中执行以下脚本,就能得到_id - contractId - status格式的输出:

// 遍历Resources集合的所有文档
db.Resources.find().forEach(function(doc) {
    // 检查当前文档是否存在有效的contracts数组
    if (doc.contracts && Array.isArray(doc.contracts) && doc.contracts.length > 0) {
        // 遍历每个合同,输出指定格式
        doc.contracts.forEach(function(contract) {
            // 处理字段缺失的情况,避免报错
            const contractId = contract.contractId || "[缺失contractId]";
            const status = contract.status || "[缺失status]";
            print(`${doc._id} - ${contractId} - ${status}`);
        });
    } else {
        // 处理没有合同的文档
        print(`${doc._id} - [无关联合同信息]`);
    }
});

小提示:

  • 如果你的合同数组字段名不是contracts(比如叫contractList),记得把代码里的doc.contracts替换成实际字段名
  • 如果contractId或status的字段名有差异,也要对应调整变量里的字段引用
  • 执行前先通过use your_database_name切换到目标数据库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:22:43