2012-08-30 13 views
7

Bu sorunun açık olması için veritabanındaki verilerin güncellenmemesi, veritabanından veri yüklenmesi ile ilgilidir. Aşağıdaki şemada ileZaten yüklenmiş olan bir mongoose belgesindeki verileri nasıl yeniliyorsunuz?

:

new mongoose.Schema 
    name: String 
    code: 
    type: String 
    index: 
     unique: true 
    _contacts: [ 
    type: mongoose.Schema.Types.ObjectId 
    ref: 'Person' 
    ] 

ben şöyle benim belge hazırladık:

Başka bir yerde uygulamada veya API çağrısı aracılığıyla
client = new Client code:'test',name:'test competition',contacts:[] 
client.save() 

yere kolayca ifade edemez

Client.findOne(code:'test').exec (err,client) -> 
    return if err or not client 
    client._contacts.push person.id # person has come from somewhere 
    client.save (err) -> 
    return err if err 

halde kendi clien dönerseniz: yukarıdaki versiyon önbelleğe için t nesnesi, bilmek istediğim nesnenin tamamı veya belirli bir yol için bu nesneyi yenilemenin bir yolu varsa. Örneğin;

client.refresh '_contacts', (err) -> 
    return err if err 

Veya dünya çapında atıfta bulunulan tek bir nesneyi sürdürmek daha iyi bir uygulama olabilir mi?

cevap

8

En iyi yöntem, etkin bir şekilde kullandığınız sürece yalnızca Mongoose model örneğini client gibi tutmaktır. Potansiyel olarak eskiyen kopyaları yenilemeye çalışmak yerine findOne kullanarak client nesnesini yeniden oluşturun.

İlgili konular