在 Mongoose 变量中嵌套数据

Posted

技术标签:

【中文标题】在 Mongoose 变量中嵌套数据【英文标题】:Nesting Data in Mongoose variable 【发布时间】:2019-05-02 23:02:15 【问题描述】:

如何在也有嵌套变量的 Mongoose 模式中声明变量的类型?如果可能,在创建对象时向其添加数据的正确方法是什么。

此架构由 Mongoose Docs 提供,我对如何添加数据和/或为“元”变量声明类型感到困惑。

var Comments = new Schema(
    title     : String
  , body      : String
  , date      : Date
);

var BlogPost = new Schema(
    author    : ObjectId
  , title     : String
  , body      : String
  , date      : Date
  , comments  : [Comments]
  , meta      : 
        votes : Number
      , favs  : Number
    
);

mongoose.model('BlogPost', BlogPost);

【问题讨论】:

【参考方案1】:

meta 是 Object 类型。它有 2 个属性,votesfavs,它们都是数字。如果你想用 meta 创建一篇博文,很简单:

new BlogPost(
  title: 'new blog post',
  body: 'nice SEO'
  meta: 
    votes: 3,
    favs: 1
  
)

如果你想在声明的时候更加明确,你可以像这样声明meta:

meta: 
  type: Object,
  votes : Number,
  favs  : Number

【讨论】:

以上是关于在 Mongoose 变量中嵌套数据的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose ODM,保存前更改变量

Mongoose ODM,保存前更改变量

mongoose基本增删改查

Node中使用MongoDB

mongoose的基本操作

Mongoose 不尊重模式并插入错误的数据类型