【发布时间】:2019-06-05 14:52:07
【问题描述】:
我尝试使用 mongoose 更新嵌套子文档的字段。
这是模型和源代码。
型号
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var info_schema = mongoose.schema({
info:Schema.Types.Mixed,
},{collection:'info'});
var InfoModel = mongoose.model('info', info_schema);
我尝试在 mongoshell 中执行 db.info.updateMany({'info.addition.group':myid},{$set:{'info.addition.field1':'a','info.addition.field2':'b'}})。
它运行良好,但使用 mongoose 无法正常工作。
InfoModel.updateMany({'info.addition.group':myid},{$set:{'info.addition.field1':'a','info.addition.field2':'b'}}).exec();
为什么mongoose不更新子嵌套文档的字段?
所以我试图更详细地描述这个模型。
var info_schema = mongoose.schema({
info:{
addition:Schema.Types.Mixed,
otherinfo:String,
modified:Number,
....
},
},{collection:'info'});
此时,mongoose 抛出了错误。
CastError: 路径“addition”中值“a”的数字转换失败
我做错了什么?
这是什么原因?
【问题讨论】: