がどのようにすぐにアップサートコマンドは流星で実装されます。このような
何かが、私は現時点ではやっているのですか?
UPDATE:そのupsert
アウト@Thomas4019ポイントがサポートされるようになりました:
v0.6.6
は「アップサートのサポートを追加Collection.updateは今{アップサート:真}をサポートしています。。オプションをさらに追加該当する場合は、新しく挿入されたオブジェクトIDを返すCollection.upsertメソッド。 "
出典:History.md
使用法のドキュメント:http://docs.meteor.com/#upsert
- オリジナルの答えは次の -
あなたはあなたにその重要性を示すために投票することができるTrello流星ロードマップ上のカードがあります:https://trello.com/c/C91INHmj
それが票をたくさん受けていない限り、それが実装される前に、それはしばらくのことを意味し、「その後」リストに現在あります。
注意すべき他の重要なことは、流星は、オープンソースであるため、自分で必要な変更を実装し、バック提出することができることです。
平均時間に同じことを行うための最善の方法は何ですか?
いくつかの解決方法がありますが、使用方法に最も適しているものは、設計についての知識がなければ分かりません。
、そのままのコードを使用してコレクションに一意のインデックスを追加し、/場合には、明示的な楽観的同時実行を実現するために
変更設計を生じた場合、重複キーエラーを処理します。
これらのソリューションの両方のコアは同じですが、エラーのケースを適切に処理します。 #1は実装が簡単です。 #2では、オプティミスティックな並行処理の柔軟性が向上します。 MongoInternals.defaultRemoteCollectionDriver().mongo.db.collection('myCollection').update(query, update, {upsert: true})
:あなたは本当にそれをしたい場合は
を、注意して二つの別々のクライアントが同時に()findOneを実行した場合{「foo」でタイトル}'との二つの文書、その作成される。 –
真実であれば、アップセートの流星の実装が理想的です。 2つのクライアントが同じデータを使ってupsertを実行すると、クライアントのシミュレートされたdbに個々のドキュメントが作成されます。流星は2つの文書をサーバー上で実行するときにそれらを同期させます。しかし、少し毛深いかもしれません...なぜ私はそれがまだ実装されていないか見ることができます。 – tom