2016-11-23 14 views
1

Mongooseを使用して、既存のオブジェクトを置き換えずにオブジェクトにアイテムを追加するにはどうすればよいですか?Mongoose:既存のオブジェクトにアイテムを追加する

User.findOneAndUpdate(
    { userId: 0 }, 
    { userObjects: { newItem: value } } 
); 

上記のコードの問題は、それは前にあったものは何でもクリアして、私はそれだけで(JavaScriptの配列のためのプッシュ機能と同様)userObjectsに別の項目を追加したいときnewItemに置き換えられていることです。

+0

あなたの 'userObjects'は配列ですか?スキーマを共有できますか? –

+1

この[質問](http://stackoverflow.com/questions/40741373/)の最新の回答を参考にしてください。 – chridam

+0

@chridamは、ありがとう! – omidh

答えて

0

あなたの質問によると、私はuserObjectsが配列であると推測しています。

$pushを試して、arrayに商品を挿入することができます。

User.findOneAndUpdate(
    { userId: 0 }, 
    { $push : {"userObjects": { newItem: value } }}, 
    {safe :true , upsert : true},function(err,model) 
    { 
     ... 
    }); 

詳細については、MongoDB $push referenceを参照してください。

お手伝いします。あなたがスキーマを提供していれば、私はより良い助けになるかもしれません。

0

UserObjectsという新しいコレクションを作成して、このようなことをしてください。

UserObject.Insert({ userId: 0, newItem: value }, function(err,newObject){ 

}); 

あなたは、あなたが他のコレクションに関連するデータを親オブジェクトを移入するmonogooseのquery populationを使用してそれを行うことができ、ユーザからこれらのユーザーオブジェクトを取得したいときはいつでも。そうでない場合は、userObjectsを配列にするだけです。

関連する問題