明確にするために、この質問は、データベース内のドキュメントの更新ではなく、データベースからのデータのロードに関連しています。
次のスキーマを使用します。
new mongoose.Schema
name: String
code:
type: String
index:
unique: true
_contacts: [
type: mongoose.Schema.Types.ObjectId
ref: 'Person'
]
私は次のようにドキュメントを作成しました:
client = new Client code:'test',name:'test competition',contacts:[]
client.save()
アプリケーション内の他の場所、またはAPI呼び出しを介して、上記でキャッシュされたバージョンを簡単に参照できない場所:
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
元のクライアントオブジェクトに戻った場合、私が知りたいのは、ドキュメント全体または特定のパスのいずれかでそのオブジェクトを更新する方法があるかどうかです。例えば;
client.refresh '_contacts', (err) ->
return err if err
それとも、グローバルに参照されるオブジェクトを1つだけ維持する方がよいでしょうか。