2015-03-03 31 views
0

我有一個模型,有一個屬性是一個集合關聯: 例如,下面的用戶模型。如何更新(覆蓋)sails.js中的集合關聯值?

module.exports = { 

    attributes: { 
    pets: { 
     collection: 'pet' 
    } 
    } 
} 

我知道,我可以用寵物的新組

user.pets.add(3); 

但我怎麼能替換現有的寵物增加寵物的用戶實例?

回答

1

你會刪除所有現有的寵物,並創建新的寵物。 sails.js沒有一個特殊的API函數來做你正在做的事情,但是它很簡單:

var newPets = [ 
    { name: 'fluffy', user: 1 }, 
    ... 
]; 

Pet.destroy({ user: 1 }) 
    .then(function() { 
    return _.map(newPets, Pet.create); 
    }) 
    .then(function (pets) { 
    // pets are "replaced" 
    }); 

或類似的東西。

+1

感謝您確認這裏沒有API。 – DevX 2015-03-03 02:48:47

+0

真的很喜歡像user.pets.set([1,4,5])將這3個寵物記錄標識與用戶實例相關聯。 相同的user.pets.add([4,5,6])一次添加多個寵物。 – DevX 2015-03-03 02:50:53

+0

您已經應該可以一次添加多個對象。 – 2015-03-03 02:58:02

3

好吧,我一直在玩API,並找到了答案。以下電話應更新(設置)單個用戶的寵物關聯。如果有現有的寵物,這種方法會覆蓋它們。

User.update({id:1}, {pets: [{id: 7}, {id: 8}]}).exec(cb);