[英]Mongoose update the field of the nested document not working
我试图使用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);
我试图执行db.info.updateMany({'info.addition.group':myid},{$set:{'info.addition.field1':'a','info.addition.field2':'b'}})
在mongoshell中。
它运作良好,但使用猫鼬无效。
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'});
这时,猫鼬扔出了错误。
CastError:对于路径“add”处的值“a”,转换为数字失败
我做错了什么?
这是什么原因?
这可以使用您的代码并稍微修改它:
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var info_schema = new Schema({ // <-- just use Schema
info: Schema.Types.Mixed
},{collection:'info'});
var InfoModel = mongoose.model('info', info_schema);
InfoModel.updateMany({'info.addition.group': 1}, // <-- I used 1 for testing
{ $set: { 'info.addition.field1' : 'a', 'info.addition.field2' : 'b' } }).exec()
首次使用info.addition.id
== 1创建记录后在本地测试,以便我可以更新它等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.