問題タブ [embedded-documents]

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 投票する
1 に答える
808 参照

ruby-on-rails - mongoidは、子IDで親の埋め込みドキュメントを取得します

私は2つのモデルを持っています

最初のモデルのレコードがいくつかあり、Rails C コンソールの最初のモデル オブジェクトから firstmodelobj.second_model として 2 番目のモデル レコードを取得できます。

私はグーグルで十分に試しましたが、2番目のモデル(子)オブジェクトのIDから最初のモデル(親)オブジェクトを見つけることができないようです。

前もって感謝します。

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

mongodb - 埋め込みドキュメントを mongodb ドキュメントの新しいフィールドに挿入する

次のような mongodb コレクションにドキュメントがあります。

配列型であるかどうかにかかわらず、新しいフィールド「PackSizes」を追加して、その中にドキュメントを埋め込みたいと思います。お気に入り-

私はmongodbの初心者です。助けてください。

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

mongodb - MongoDB が、ハッシュ配列に格納されている埋め込みドキュメントのプロパティのクエリをサポートしていないのはなぜですか?

ハッシュを使用して保存された埋め込みドキュメントのプロパティのクエリを MongoDB がサポートしないのはなぜですか?

たとえば、次のように作成された「invoices」というコレクションがあるとします。

このような構造では、$elemMatch、ドット構文、または位置演算子 ($) を使用した MongoDB クエリは、各 productsBySku メンバーのプロパティにアクセスできません。

たとえば、次のことはできません。

したがって、在庫切れの製品を見つけるには、次のような $where クエリを使用する必要があります。

技術的なレベルでは... なぜ彼らは、クエリに対してこの非常に厳しい制限を設けて MongoDB を設計したのでしょうか? 確かに、この一見重大な欠陥には何らかの技術的な理由があるに違いありません。キーを無視して、オブジェクトのリストを配列として処理できないのは、言語としての JavaScript の単なる制限ですか? それとも、これは MongoDB 内のアーキテクチャ上の決定の結果でしたか?

ちょっと興味があるんだけど。

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

mongodb - サブ埋め込みドキュメントで複雑なスキーマを更新する

サブ埋め込みドキュメントをmongodbで更新しようとしていますが、うまくいきません。

与えられた chapter.id と quest.id が必要で、このドキュメントの割合を更新します (このドキュメントのみ)

私のスキーマは次のようになります:

私はこれを試しました:

そしてこのエラーがあります

誰かが私を助けることができる場合、私が0でそれをした場合、それはおそらくスキーマの問題ですか?

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

vba - 埋め込みドキュメントのテキスト フィールドをロックする

テンプレート内のテキストを置換してレポートを作成するスプレッドシートを更新する任務を負っています。以前は、ワークシートは外部/別のファイルを参照していました。私の仕事は、埋め込まれたドキュメントで機能させることです。

現在、埋め込みドキュメント テンプレート内に挿入するすべての入力用のテキスト フォーム フィールドがあります。現状では、ユーザーはドキュメント テンプレートを好きなように編集できますが、誤ってテキスト フォーム フィールドを消去すると (ここでも vba マクロによってテキストが置き換えられます)、マクロが破損し、スプレッドシートが役に立たなくなります。

私の質問:

ドキュメントの残りの部分を編集できるように、テキスト フォーム フィールドをロックまたは保護する方法はありますか? 私は基本的に、「テキストフォームフィールドのみ」の保護の逆を持ちたいと思っています。

あるいは、このプロジェクトにアプローチするより良い方法はありますか? スプレッドシートをそのままにしておくことを考えていますが、何かが壊れた場合にテンプレートを元の状態に戻す「リセット」ボタンを含めます。この方法を実行した場合、外部ファイルが存在する必要はありません。これまでのところ、これを行う試みは成功していません。

私の一般的な方法論/アルゴリズムは次のようになります。

  1. 参照ドキュメントを開く
  2. ブックマークを介してすべてのテキスト フォーム フィールドをプレーン テキストに置き換え、後でブックマークを再割り当てするようにします (マクロを複数回実行した場合にブックマークが失われないようにするため)。
  3. 入力が挿入された .doc として埋め込みドキュメントを保存します。
  4. ブックマークされたすべての入力をテキスト フォーム フィールドに置き換えて、テンプレートを元の状態に戻します

どんな情報でも非常に高く評価されます。私はゆっくりと時間がなくなり、行き詰まりを感じています。

どうもありがとう!

-スージ

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

mongodb - 埋め込みドキュメントの $elemMatch

これが私が取り組んでいるものです:

私が望むのは、特定の名前とともに特定の範囲(月としましょう)の「インスタンスの日付」を持つすべてのドキュメントの数です。「elemMatch」で 2 つのクエリを使用しましたが、残念ながら期待した結果が得られません。elemMatch と instances.date を使用して試したことは次のとおりです。

ネストされた elemMatch を次に示します。

前もって感謝します。

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

json - 新しく初期化された親オブジェクトの mongoid から bson doc の空の配列を取得する

初期オブジェクトに空の配列を持たせようとすると、埋め込みを表す多くのドキュメントがあり、現在ドキュメントが埋め込まれていません。

ドキュメントが埋め込まれている場合、または埋め込まれたドキュメントをすべて削除した後、json文字列で関係を取得できます。しかし、ドキュメントを埋め込む前に、json 文字列で属性 character_classes を取得しません。

IRB の出力の下と下に私のモデルがあり、to_json と as_document を使用したときに得られるものを示しています。最初のセットでは、追加と削除の両方の後に character_classes を取得できません...

質問: character_classes を空の配列として渡すように初期設定するにはどうすればよいですか?

===========モデル==========================

==========IRB==============================

> char = Character.first

=> #<Character _id: 550a1bd94e696383d1020000, created_at: 2015-03-19 00:44:09 UTC, updated_at: 2015-03-19 00:44:09 UTC>

> char.character_classes

=> []

> char.as_document

=> {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC}

> char.to_json

=> "{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

> char.character_classes.create(title: "data")

=> [#<CharacterClass _id: 550a1d914e69638730000000, title: "data", character_level: 1>]

> char.as_document => {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC, "character_classes"=>[{"_id"=>BSON::ObjectId('550a1d914e69638730000000'), "title"=>"data", "character_level"=>1}]}

> char.to_json

=>"{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"character_classes\":[{\"_id\":{\"$oid\":\"550a20a74e69638730010000\"},\"character_level\":1,\"title\":\"data\"}],\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

> char.character_classes.destroy_all

=> 1

> char.character_classes

=> []

> char.as_document => {"_id"=>BSON::ObjectId('550a1bd94e696383d1020000'), "updated_at"=>2015-03-19 00:44:09 UTC, "created_at"=>2015-03-19 00:44:09 UTC, "character_classes"=>[]}

> char.to_json

=> "{\"_id\":{\"$oid\":\"550a1bd94e696383d1020000\"},\"character_classes\":[],\"created_at\":\"2015-03-19T00:44:09.232Z\",\"updated_at\":\"2015-03-19T00:56:01.257Z\"}"

編集済み

to_json または as_document とは何の関係もないこの問題が発生して以来、私は認識しています。プルされない理由は、値を持つ属性のみがデータベースに配置されるためです。したがって、新しいオブジェクトを作成するとき、埋め込まれたドキュメントはまだ存在しないため、データベースには配置されません。したがって、レコードを要求すると、何らかの値を持つ属性が与えられるだけです。

通常の属性の場合、空白のデフォルトを作成することでこれを解決できます。ただし、多くの埋め込みにはデフォルトのオプションはありません。

関係を初期化して空の配列をデータベースに配置する方法を知っている人はいますか?

0 投票する
3 に答える
25792 参照

mongodb - MongoDB: ネストされたドキュメント内の ID でドキュメントを見つける方法

このようなコレクションを考えると:..

... でドキュメントを検索するにはどうすればよいaccounts.N._idですか? 私はこれを試しました...

_id...しかし、すべてのドキュメントののみを取得するため、機能しません:

何か不足していますか?

編集

私が実際に必要とする結果は、次のようなものです。

たとえばaccounts.N._id、ネストされたドキュメント自体を表示せずに検索する必要があります。