水线:创建或更新填充记录

时间:2018-10-26 17:44:13

标签: sails.js waterline

我的问题是基本的,但是在文档中找不到答案。我有两个模型:“人”和“位置”一对一关联。 我想在“位置”集合中创建或更新“填充的子记录”。

 let person = await Person.findOne({ phone: inputs.phone }).populate('reside');

很好的回报

{ reside: [],
createdAt: 1540081110195,
updatedAt: 1540331824622,
id: '5bcbc5d609618e2cfbe64883',
phone: '+42424242',}

我想创建新的位置记录(当它们不存在时)或更新(如果它们不存在)。我尝试

let location = await Location.update({ id: person.reside.id })
.set({city: inputs.city,
    street: inputs.street,
  }).fetch;

但是当还没有创建记录时,它就不起作用。

model / Person.js

phone: {
  type: 'string',
  unique: true,
},
reside: {
  collection:'location',
  via: 'owner'
},

models / Location.js

city: { type: 'string' },
street: { type: 'string' },
owner:{
  model:'person',
  unique: true
}

我使用action2

1 个答案:

答案 0 :(得分:0)

我终于找到了here方法.addToCollection().removeFromCollection().replaceCollection()来修改特定记录或记录集的填充值。在文档中谈论它似乎并不是最合适的地方