一个关于 Mongoose 定义 schema 的问题
发布于 3 年前 作者 beyond5959 2939 次浏览 来自 问答

在定义 schema 的时候,我想定义一个存放对象数组的字段,如下:

const inventorySchema = new Schema({
	instock: [Object],
});

instock 对象用来存放对象数组,但当我像下面这样写入数据的时候却报错了:

inventoryModel.create({instock: [{ warehouse: "A", qty: 5 }, { warehouse: "C", qty: 15 }]})

报错截图如下: Screen Shot 2017-03-29 at 21.59.48.png 但是当我把 schema 中的定义改成instock: [{}] 这样的时候又能正常写入成功了。我查官方文档时候发现如下: lALOuAGWBMz6zQL7_763_250.png_620x10000q90g.jpg 文档里说了 Object 和 {} 等效了啊,但是为什么 [Object] 和 [{}] 就不一样了呢? 请问有知道的同学吗?

3 回复

何不直接定义 instock: [ ]

文档那里不是那个意思… {any : Object} 是你在定义的时候这里面可以放任何对象,any是指对象的key, Object是对象的value,它的意思就是你可以在{}内放任何的key : value

instock: [ ] 这才是正确的, instock: [object],没见过这样的

回到顶部