【问题标题】:Mongoose did not sent the data as expectedMongoose 没有按预期发送数据
【发布时间】:2019-02-20 00:41:21
【问题描述】:

我在服务器端有一个猫鼬对象:

...
item = {
  name: "Test",
  id: 1
}

// item's an mongo schema

// id and name defined in model as String and Number

然后我在项目中添加新字段提及:

item.mention = [{ id: 1, ... }]

但我无法在客户端提及。

我的回复码:

res,json({ status: 1, message: 'success', data: item })

响应是数据:{ name: "Test", id: 1 }

我不想在我的 mongo 架构中添加提及。

那么,我的问题是什么?

我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: node.js mongoose


    【解决方案1】:

    问题是,如果您尝试为其设置值的字段在模型的架构中不存在,猫鼬将不允许您修改项目文档,您的情况是“提及”字段。 如果要添加“提及”字段,则必须访问项目文档的 _doc 字段。示例:-

    item._doc.mention = [{ id: 1, ... }]
    

    响应应该是:-

    { name: "Test", id: 1, mention: [{ id: 1, ... }] }
    

    【讨论】:

      【解决方案2】:

      通常不建议这样做,但是如果您想像这样更改架构。 您应该在设置这样的架构时将严格的 false 参数传递给猫鼬模型。

      var ModelSchema = new Schema({
        number: String,
      }, { strict: false });
      

      现在,如果您提供任何其他不在架构中的参数,它将更改架构,它会添加那个。

      【讨论】:

        猜你喜欢
        • 2020-05-31
        • 2014-04-13
        • 2017-01-16
        • 1970-01-01
        • 2021-07-12
        • 1970-01-01
        • 2023-01-18
        • 1970-01-01
        • 2020-01-27
        相关资源
        最近更新 更多