我在服务器端有一个猫鼬对象:
...
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模式中添加提及。
那我怎么了?
我该如何解决?
谢谢!
答案 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 });
现在,如果您提供了不在架构中的任何其他参数,它将更改架构。