問題タブ [subdocument]

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.

0 投票する
0 に答える
351 参照

ruby - MongoDB サブドキュメントの部分一致を検索するにはどうすればよいですか?

MongoDB データベースに、会議場を説明する一連のドキュメントがあります。また、会議場の開場時間に関する情報も含まれています。

例:

ドキュメントを検索して、サブドキュメントのステータスが「開いている」ドキュメントのみを返したいと考えています。これを達成できる「検索」句を書くことができないようです。

たとえば、オブジェクト ID が 54ccbb91cbcb91146d000002 の「スロット」サブドキュメントを除いて、上記のドキュメントを変更しないでください。

たとえば、これはドキュメント全体を返します。

(実際には、次のような Ruby の中にあります):

私は何を間違っていますか?

0 投票する
1 に答える
474 参照

mongodb - 集約パイプラインのコレクションからサブドキュメントを減算

mongodb からドキュメントを取得し、条件 ( deleted != null) に基づいて配列からいくつかのオブジェクトを削除しようとしています。これは、私がターゲットにしているアイテムの簡単な例です:

クエリが成功すると同じ結果が返されますが、null ではなく ISODate が含まれているため、画像オブジェクトの 1 つが削除されます。このような:

$unwind画像に集約を使用してから$match、関連する画像のみを使用しようとしましたが、ドキュメントを再作成する必要があります。それ以外の場合は、残りの 3 つの「巻き戻された」ドキュメントが返されます。

これが私がこれまでのところです:

残っているものから 1 つのドキュメントを作成する方法はありますか、それとも完全に間違った方法でこれを行っていますか?

ありがとう。

0 投票する
1 に答える
524 参照

php - PHPを使用してmongodbでキーと値を持つサブドキュメントを更新する方法

こんにちは、mongodb は初めてで、ここで PHP を使用しています。以下のような配列を持つサブドキュメントを既存のドキュメントに更新したい。

以下の関数を呼び出そうとすると

期待通りにはいかず、違う形でやってくるでしょう。これを更新する正しい方法を教えてください。

元の配列:

期待される出力:

0 投票する
1 に答える
484 参照

python - MongoDB サブドキュメントを含むカスタム キーで配列を作成する方法

さて、Python と MongoDB を使用して、配列内にカスタム キー値を持つサブドキュメントを配列内に埋め込もうとしています。私はこれを行うためにあらゆる種類のさまざまな方法をいじっていましたが、何が間違っているのか理解できなかったため、一時的に以下の作業コードに落ち着きました. 何度も試行すると、常にエラーが発生します。

in _check_write_command_response raise OperationFailure(error.get("errmsg"), error.get("code"), error) pymongo.errors.OperationFailure: 'followedBy..first.rule' のドット付きフィールド 'first.rule' は保管に有効です。

コード:

プロデュース:

これは私が欲しいものです:

0 投票する
1 に答える
341 参照

arrays - 他のサブドキュメントを取得せずに、サブドキュメント内の配列の最初の項目を取得します

MongoDBでは、プロパティにある配列の最初の項目のみを取得するにはどうすればよいですか?

ネストされたドキュメントがあり、それをクエリします$text(ただし、それは問題ではありません。通常のクエリも機能しません)

私の文書の構造:

私が走るとき

で完全な配列を取得しpropA.prop1ます。代わりに走るとき

の最初のアイテムのみを取得しますがpropA.prop1、内部の他のすべてのアイテムも取得しますpropA( propA.prop2propA.prop3、 ... など)

どうにかして 2 つのクエリを結合したいのですが、その方法がわかりませんでした (コードで取得した後を除く)。

0 投票する
1 に答える
105 参照

python - RethinkDB に存在しない可能性のあるサブドキュメントに追加する方法は?

次のようなドキュメントを検証する JSON スキーマがあります。

この"galleries"部分は検証では必要なく (一部のドキュメントにはギャラリーがない場合があります)、その<category>部分は単なる任意の文字列です。「スクリーンショット」。

"galleries"どちらも<category>存在しないか、存在することが保証されていない場合、ギャラリーアイテムに画像を追加するにはどうすればよいですか? 「スクリーンショット」ギャラリーに画像を追加したいとしましょう。2 つのクエリを作成して最初に存在を確認する必要がありますか? それとも、これをアトミックに行うことは可能ですか?

編集:私の現在の解決策は、ゲームのgalleriesフィールドを照会し.default({})、結果の辞書を Python で処理し、マージで更新することです。

0 投票する
1 に答える
218 参照

node.js - _idフィールドを使用せずに複数のプロパティを使用して、マングースでサブドキュメントを見つける方法

私はこのようなサンプルスキーマを持っています -

今、私は _id フィールドを外の世界に公開したくないので、どこのクライアントにも送信していません。これで、コメント スキーマに 2 つの重要なプロパティ (ユーザー名、URL) ができました。やりたいことは、条件を満たすサブ ドキュメントのコンテンツを更新することです

  1. feed.url
  2. コメント.url
  3. コメント.ユーザー名

comment.usernameがクライアントの値と同じである場合は、変数でクライアントによって提供された URL を持つレコードreq.user.usernameのプロパティを更新します。comment.textreq.body.url

私が考えた長くて時間のかかるアプローチの 1 つは、最初に指定された URL のフィードを見つけてから、すべてのサブドキュメントを繰り返し処理して条件を満たすドキュメントを見つけ、そうであればコメント オブジェクトを更新するかcomment.url==req.body.urlどうかを確認することです。comment.username==req.user.usernameしかし、これを行うより簡単な方法があるに違いないと思いますか?私はすでに試しました-

http://www.tagwith.com/question_305575_how-to-find-and-update-subdocument-within-array-based-on-parent-propertyから見つかりました

comments.urlただし、これはまたはcomments.usernameが他のサブドキュメントと一致する場合でも更新されます

そして私も試しました

に関連付けられているドキュメントの _id を検索しますが、サブドキュメント内のurlすべてを返します_id

0 投票する
2 に答える
1337 参照

arrays - 配列から最初に一致するサブドキュメントを検索して返す (Meteor / Mongo)

'tasks' 配列で、completed: true に一致する最初のサブドキュメントを見つけて返すにはどうすればよいですか?

usingfindOneはドキュメント全体を返します.サブドキュメントを返すための別の関数はありますか?

0 投票する
1 に答える
52 参照

node.js - 2 つ (またはそれ以上) のプロパティの両方に一致するサブドキュメントを含むドキュメントを検索します

Node with Mongoose で、コレクション内のオブジェクトを見つけたいと考えていますContent。と呼ばれるサブドキュメントのリストがusersあり、プロパティstreamuseraddedです。特定のユーザーの_idプロパティがusers.userフィールドにあるすべてのドキュメントを取得するためにこれを行います。

これは機能しているようです (ただし、ここで実際に機能しているかどうかはわかりません。ただし、次のように2 つのフィールド.sortを一致させたいと考えています。

それはうまくいかないようです。これを行う正しい方法は何ですか?


サンプル文書はこちら