CNode

一个关于 Mongoose 定义 schema 的问题

问答
Bbeyond5959发布于9 年前最后回复8 年前3 回复5450 浏览0 收藏

在定义 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)

S
s3293418#1·9 年前

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

N
nnliang#2·9 年前

何不直接定义 instock: [ ]

K
kamhung#3·8 年前

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

参与回复
登录后即可参与回复。登录