如果object为null,猫鼬不会保存

时间:2019-02-28 11:53:38

标签: node.js mongodb mongoose

如何不插入空对象,即在Mongoose模式中插入{ }

假设猫鼬的收藏如下

let testCollection = mongoose.Schema({
  someData:{
    type: []
  }

插入猫鼬集合如下

let emptyObj = { }

new testCollection({
 someData: emptyObj
}).save()

如果执行此代码,猫鼬收集将像这样

 db.somecollection.find().pretty()

    {
     "someData" : [
       { }
      ]
    }

仅在对象不为空时,如何在该数组中插入对象

1 个答案:

答案 0 :(得分:2)

如果没有其他字段,则可以使用三进制:

const isEmpty = !obj || Object.keys(obj).length;

new testCollection(isEmpty ? { someData: emptyObj } : {}).save()

否则,这可以通过对象散布和短路评估来完成,以避免重复和其他临时变量:

new testCollection({
  someField: 'value',
  ...(isEmpty || { someData: emptyObj })
}).save()