2012-08-30 9 views
7

この質問はデータベースからのデータの読み込みであり、データベース内のドキュメントの更新ではありません。次のスキーマで既にロードされているmongoose文書のデータをどのように更新しますか?

:どこかにそれが簡単に参照することができないことを、他の場所でアプリケーションやAPIの呼び出しを経由して

client = new Client code:'test',name:'test competition',contacts:[] 
client.save() 

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

私はそうのように私の文書を作成しました上記のキャッシュされたバージョンに:

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 

我々は我々の元CLIENに戻った場合tオブジェクト私が知りたいのは、ドキュメント全体または特定のパスのいずれかでそのオブジェクトをリフレッシュする方法がある場合です。例えば;

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

グローバルに参照されるオブジェクトを1つだけ維持する方がよいでしょうか?

答えて

8

ベストプラクティスは、活発に使用している限り、clientのようなモンゴースモデルのインスタンスをデータベース内のものと簡単に同期しなくなる可能性があるため、保持することをお勧めします。 clientオブジェクトは、不要な可能性のあるコピーをリフレッシュするのではなく、findOneを使用して必要なときに再作成します。

関連する問題