Node.js 猫鼬唐';如果对象为空,则无法保存

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模式中插入空对象,即
{}

假设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()