2016-12-23 49 views
0

おそらく、あなたの更新操作がうまくいっていることを保証する方法はありませんか? これは私がやった方法ですが、返された "result"は "false"です。MongoDBの更新操作が成功したことを保証する

import { Mongo } from "meteor/mongo"; 
const Employees = new Mongo.Collection("Employees"); 

const result = Employees.update({_id: employeeId}, {$push: {tasks: taskId}}); 
console.log(result); // "false" 

おかげ

デレク

+1

クライアントまたはサーバーで実行しましたか?サーバー上で、影響を受けるドキュメントの数を取得します。クライアントでは、結果を同期して取得しません。 – MasterAM

+0

@MasterAMサーバー側では、クライアント側で同期的に動作していますが、非同期で動作していますか? – derek

+1

サーバー上ではファイバーを使用して、一見同期的なコード(非同期ネイティブMongo関数をラップする)を作成し、クライアント上でMiniMongoでアクションをシミュレートし、サーバー上で自動生成メソッドを呼び出します。これらの要求は非同期であり、メソッドが応答を返すまでクライアントは結果を実際に知る方法がありません。 – MasterAM

答えて

1

すべて成功したとして、あなたはクラスによって異なり? WriteConcernを見ると、確認応答、ジャーナルへの書き込み、またはクラスターでの多数のノードへの書き込みの結果を得ることができます。これはすべてアプリケーションに依存し、どのように障害に対処できるかによって異なります。あなたはupdateメソッドにコールバックを使用することができます影響された行数を取得するためとして

API documentationを参照)

コールバック関数

オプション。存在する場合は、エラーオブジェクトを第1引数として呼び出し、エラーがなければ影響を受ける文書の数を第2引数とします。

関連する問題