問題タブ [findandmodify]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - MongoDB で深くネストされたドキュメントで findAndModify のようなものを使用できますか?
MongoDB に次のようなドキュメントを含むCollectionコンテキストがあります (コンテキストにはロールを持つユーザーがいます)
findAndModifyを使用してユーザーにロールを追加 (または削除) する方法はありますか?
node.js - mongodb の findAndModify エラー - nodejs - エラー コード 17287
次のエラーが表示されます:
MongoError: 例外: nextSafe(): { $err: "クエリを正規化できません: adValue の不適切な並べ替え指定"、コード: 17287 }
mongodb - ラッピング情報なしで findAndModify の結果として見つかったドキュメントのみを取得する方法はありますか
findAndModify
MongoDb リクエストがあります。mongo サーバーはドキュメントを次のようにラップします。
value
キーからオブジェクトのみを取得する方法はありますか?
node.js - node.js/MongoDb での findAndModify の使用法
ユーザーのお気に入りの映画のリストを表示するコレクションがあります。これがサンプルデータセットです...
_id545c08dcc4d2b8a0243dd4db
と映画が与えられました
これを Node.js/MongoDB の watch_movies に追加する必要がある場合は、次の方法しかないと思います。
- 検索を使用してドキュメントを検索する
- 見つかったドキュメントに対して、watched_movies 配列に追加して findAndModify を実行します。
ステップ #2 は、 http://mongodb.github.io/node-mongodb-native/markdown-docs/insert.htmlの例に基づいています 。
これを行うより良い方法はありますか?具体的には、ステップ#1を回避できますか?
これが私がステップ#2をやっている方法です。しかし、「watched_movies」要素を取得するためにステップ 1 を実行し、新しいムービーをそれに追加して、movielist
このスキーマ設計を改善するための提案も受け付けています。
mongodb - 初期値がゼロでない Mongodb カウンター
1000から始まるカウンターを作りたいです。
つまり、次のようにmongodbドキュメントをアップサートします
- ドキュメントが存在しない場合は、値 1000 で作成します
- ドキュメントが既に存在する場合は、値を +1 増やします
以下は機能しません。
挿入の場合は $set 1000 が必要であるが、更新の場合は $inc 1 が必要であることを upsert に伝える方法はありますか?
java - リストを含む mongo (または spring-mongo) ドキュメントをアップサートするにはどうすればよいですか
リストの要素が常にアップサートされた値の結合になるように、リストを含むドキュメントをアップサートする方法があるかどうかを判断しようとしています。
次のクラスがあるとします (物事を単純化するために構成されています)。
さらに、最近読んだ本だけの更新を取得すると仮定しますが、読んだすべての本の完全なリストを DB に保持したいと考えています。したがって、私がやりたいのは、存在しない場合は Patron (booksRead を使用) を挿入するか、Patron が既に存在する場合は booksRead を更新することです。
したがって、最初の upsert 'John Doe' はコレクションにないため、ドキュメントが挿入され、次のようになります。
ジョンは「怒りの葡萄」を読み直し、「ネズミと人間」も読みました。挿入は、読んだ本として 2 本を渡そうとしますが、「Of Mice and Men」だけを読み取りリストに挿入して、ドキュメントが次のようになるようにしたいと思います。
私が試したことはすべて、挿入用と更新用の呼び出しを分離する必要があることを示しているようです。Update.set は最初のロード (挿入) で機能しますが、2 回目の更新で完全なリストを置き換えます。$addToSet は更新時に機能しますが、最初の挿入時に「非配列」に挿入しようとすると不平を言います。
アップデート:
これは、Spring-mongodb の問題のようです。mongo Java api 呼び出しで上記を実現できますが、同等のスプリングを使用すると失敗します。(少なくとも spring-data-mongodb 1.6.2 まで)
mongodb - golangでmongodbの1つのレコードを見つけて変更するにはどうすればよいですか?
私はこのようなものが欲しい:
- mongo dbで1つのレコードを見つける
old_record
- この記録を次のように更新します
new_record
- 戻る
old_record
次のようなコードを書きます。
しかし、操作である必要があるfind
と思うので、私のコードは安全ではありません。update
atomic
アトミック操作でこれを行うにはどうすればよいですか