Node.js 猫鼬唐';如果对象为空,则无法保存
如何不在Mongoose模式中插入空对象,即Node.js 猫鼬唐';如果对象为空,则无法保存,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,如何不在Mongoose模式中插入空对象,即{} 假设Mongoose集合如下所示 let testCollection = mongoose.Schema({ someData:{ type: [] } 在Mongoose集合中插入如下内容 let emptyObj = { } new testCollection({ someData: emptyObj }).save() 如果执行此代码,mongoose集合将如下所示 db.somecollection.find
{}
假设Mongoose集合如下所示
let testCollection = mongoose.Schema({
someData:{
type: []
}
在Mongoose集合中插入如下内容
let emptyObj = { }
new testCollection({
someData: emptyObj
}).save()
如果执行此代码,mongoose集合将如下所示
db.somecollection.find().pretty()
{
"someData" : [
{ }
]
}
如何在该数组中插入对象仅当对象不为空时?如果没有其他字段,则可以使用三元:
const isEmpty = !obj || Object.keys(obj).length;
new testCollection(isEmpty ? { someData: emptyObj } : {}).save()
否则,这可以通过对象扩展和短路评估来完成,以避免重复和额外的临时变量:
new testCollection({
someField: 'value',
...(isEmpty || { someData: emptyObj })
}).save()
如果没有其他字段,则可以使用三元:
const isEmpty = !obj || Object.keys(obj).length;
new testCollection(isEmpty ? { someData: emptyObj } : {}).save()
否则,这可以通过对象扩展和短路评估来完成,以避免重复和额外的临时变量:
new testCollection({
someField: 'value',
...(isEmpty || { someData: emptyObj })
}).save()