猫鼬中的 [{type: String}] 和 {type: [String]} 有什么区别?
what is difference between [{type: String}] and {type: [String]} in mongoose?
我试图获取数据,如果没有为字段分配值,它就不应出现在集合中。
我试过这个:
const CollectionSchema = new Schema({
field1: [{ type: String, default: undefined}],
});
OR
const CollectionSchema = new Schema({
field1: [{ type: String, default: () => undefined}],
});
没有用,每当我尝试将其创建为空时,field1:[]
就会出现。
但是这段代码起作用了。用于创建嵌套数组的两个给定片段有何区别,以便在未添加数据时不显示字段?
const CollectionSchema = new Schema({
field1: { type: [String], default: () => undefined},
});
使用 [{ type: String, default: undefined}]
可以创建一个 field1
数组,其中包含字符串作为元素。如果没有值,则数组中将有未定义的元素。这就是它不起作用的原因。
换句话说,等效代码为:
const CollectionSchema = new Schema({
field1: [fieldSchema],
});
const fieldSchema = new Schema({
field : { type: String, default: undefined},
});
如您所见,field1
不会未定义。
使用 { type: [String], default: () => undefined}
您只需创建一个字符串数组。这就是它起作用的原因。
我试图获取数据,如果没有为字段分配值,它就不应出现在集合中。
我试过这个:
const CollectionSchema = new Schema({
field1: [{ type: String, default: undefined}],
});
OR
const CollectionSchema = new Schema({
field1: [{ type: String, default: () => undefined}],
});
没有用,每当我尝试将其创建为空时,field1:[]
就会出现。
但是这段代码起作用了。用于创建嵌套数组的两个给定片段有何区别,以便在未添加数据时不显示字段?
const CollectionSchema = new Schema({
field1: { type: [String], default: () => undefined},
});
使用 [{ type: String, default: undefined}]
可以创建一个 field1
数组,其中包含字符串作为元素。如果没有值,则数组中将有未定义的元素。这就是它不起作用的原因。
换句话说,等效代码为:
const CollectionSchema = new Schema({
field1: [fieldSchema],
});
const fieldSchema = new Schema({
field : { type: String, default: undefined},
});
如您所见,field1
不会未定义。
使用 { type: [String], default: () => undefined}
您只需创建一个字符串数组。这就是它起作用的原因。