猫鼬没有按预期发送数据

时间:2019-02-20 00:41:22

标签: node.js mongoose

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

...
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模式中添加提及。

那我怎么了?

我该如何解决?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

响应应为:-

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

答案 1 :(得分:0)

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

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

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