2016-12-25 14 views
0

ObjectIdであるmongoフィールドを解除する必要があり、このIDが現在のユーザーのIDであり、このフィールドが設定されている場合、別のスキーマを参照します。それ以外の場合は、このフィールドが設定されていない場合は、現在のユーザーIDを設定する必要があります。フィールドが設定され、ObjectIDが一致しない場合、現在のユーザーIDのmongoは、既存のドキュメントを返しますが、ObjectIDフィールドに変更を加えずに返します。条件付きマングース更新文書

今私はIDでエントリを見つけて、自分のJSコードでケースをチェックします。次に、ドキュメントを更新するために別のクエリを実行します。しかし、これはmongoによって1つのクエリで実行できると思います。私nodeJS

答えて

1

で私はマングースを使用してい

マングースfindOneAndUpdateあなたはfor.Itは、一般的な構文を以下している探している機能です。 query.findOneAndUpdate(conditions, update, options, callback) 編集:サンプルクエリが追加されました。

var query = {"_id": id}; 
var update = {name: {first: 'john', last: 'smith'}}; 
var options = {new: true}; 
People.findOneAndUpdate(query, update, options, function(err, person) { 
    if (err) { 
    console.log('got an error'); 
    } 

    // at this point person is null. 
}); 
+0

条件パラメータの詳細な表示を教えてください。 –

+0

ユースケースで私の答えを更新しました – Gaurav