• 欢迎关注我的微信公众号“ frontEnd_Developer ” 右边扫描关注 --->>

mongoose修改Mixed(混合)类型

Node 神棍 883℃ 0评论

缘由: 因为在工作中,修改Mixed类型属性,无法save到数据中,然后在网上找到了原因,本文谨以学习了解记录为主,如有不对之处,望多多指点!

众所周知,mongo 和 node的搭配开发,就像有句俗话所说: 男女搭配,干活不累!

当然在开发的过程中,肯定有不少人用到了 mongoose 这个润滑剂,因为它可以帮助开发人员更容易的去操作mongo。

在使用过程中,一般是先定义一个 Schema——数据库原型 ,来进行一个数据库模型搭建,当然他无法操作数据库,只是为了更好的理解,数据在文档中的表现形式。

在定义模型当中,我们难免会使用到一种数据类型 —— Schema.Types.Mixed (混合数据类型)

那么何为混合数据类型呢?

在我的理解看来,就是一个没有定义类型的数据类型,一般我们会定义成 { type: {}} 或者 {type: Schema.Types.Mixed},比如:

let obj = new Schema({
    config: {}
})
let obj = new Schema({
    config: Schema.Types.Mixed
})

这两种定义方式都是一样的,正是因为没有定义具体表现形式,所以我们可以对他进行任意修改,在修改完成之后,需要调用 markModified() 来更新数据文档,否则直接调用save()方法,是无法更新文档为修改后的内容。

obj.config = { a: 10 }
obj.markModified('config')
obj.save()

其中markModified传入的参数为需要修改的属性名,表示该属性类型发生变化

参考资料:
http://mongoosejs.com/docs/schematypes.html
https://cnodejs.org/topic/504b4924e2b84515770103dd

转载请注明:Falost的小窝 » mongoose修改Mixed(混合)类型

如果你觉得这篇文章不错或者对你有帮助,想请我喝一杯咖啡,可以打赏
喜欢 (3)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址