mongodb - MongoDB/Mongoose 如何在复杂结构中添加元素
问题描述
我正在处理的项目中有这种复杂的结构,但我找不到在“parametri”数组中批量添加一些值的方法。
这是一个示例文档:
我的目标是将一些值添加到数组“protocolli”位置 1 的 Object 内部的“parametri”数组中。
在 mongoDB Compass 中,我可以使用“'protocolli.nome': 'protocollo-2'”进行选择,所以我尝试了以下代码(该项目是用 TS 编写的,使用 NestJs 后端和 Mongoose 与 MongoDB 进行通信) :
this.model.updateMany(
{ 'protocolli.nome': ProtocolloAlert.PROTOCOLLO_2 },
{
$push: {
'protocolli.parametri': {
$each: [
TipoParametro.FAT_MASS,
TipoParametro.DISTANCE,
TipoParametro.MUSCLE_MASS,
TipoParametro.STEPS,
TipoParametro.CALORIES,
TipoParametro.MINUTES,
],
},
},
},
{ multi: true }
)
我已经尝试过 $push、$addToSet、$set 没有积极的结果..
使用这种方法,我有以下错误:
MongoError:无法在元素 {protocolli:[ { nome:“protocollo-1”,parametri:[“temp”,“spo2”,“hr”,“sys”]中创建字段'parametri',描述:“控制中的Attivazione警报房间, inserimento nei log degli alert in corso, salvataggio nella scheda alert del paziente" }, { nome: "protocollo-2", parametri: [ "dya", "pulse", "fr", "pef", "fev1" 、“fvc”、“fev1fvc”、“etco2”、“freqRes”、“葡萄糖”、“体重”、“身高”、“bmi”、“体脂肪”、“hba1c”、“totCh”、“甘油三酯”、“ hdl", "ldl" ], 描述: "Salvataggio nella scheda alert del paziente" } ]} 在 Function.create (C:....\node_modules\mongodb\lib\core\error.js:57:12)
提前致谢。
解决方案
推荐阅读
- r - for循环中的子集数据框
- c++ - T、volatile T 和 std::atomic 有什么区别
? - php - Symfony Form Ajax 提交的 EntityType 返回 null
- google-apps-script - 自动填充从工作表到文档的日期并获得不同的时区(GoogleScript)
- android - 如何在 MotionLayout 中创建带有约束的幻灯片动画?
- excel - Excel VBA - 从 Outlook 获取表格并粘贴到 Excel
- r - R Shiny数据表基于SelectInput突出显示行
- shell - 从 csv 文件中删除记录并使用 shell 脚本将它们放入一个新文件中
- python - 管理图例中标签的显示
- azure - Hyperledger 结构:TLS 握手失败,使用中间 CA 证书出现错误“未发送 TLS 证书”