[解決済み] MongoDB: 配列内のインデックスで参照されるサブ要素を更新するには?
2023-01-20 13:28:50
質問
mongodb ドキュメント内の配列に含まれる単一のサブ要素を更新しようとしています。私はその配列インデックスを使用してフィールドを参照したい(配列内の要素は、私が一意の識別子であることを保証できるフィールドを持っていない)。これは簡単にできるように思えますが、構文がわかりません。
以下は、私が擬似jsonで行いたいことです。
ビフォーです。
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... old content B ... },
{ ... old content C ... }
]
}
後です。
{
_id : ...,
other_stuff ... ,
my_array : [
{ ... old content A ... },
{ ... NEW content B ... },
{ ... old content C ... }
]
}
クエリはこんな感じでいいみたいです。
//pseudocode
db.my_collection.update(
{_id: ObjectId(document_id), my_array.1 : 1 },
{my_array.$.content: NEW content B }
)
しかし、これはうまくいきません。mongodbのドキュメントを検索し、この構文のさまざまなバリエーションを試すのにあまりにも長い時間を費やしてきました(たとえば
$slice
を使うなど)。MongoDB でこの種の更新を行う方法について、明確な説明を見つけることができません。
どのように解決するのですか?
予想通り、一度方法を知ってしまえば、クエリは簡単です。 Pythonのシンタックスです。
db["my_collection"].update(
{ "_id": ObjectId(document_id) },
{ "$set": { 'documents.'+str(doc_index)+'.content' : new_content_B}}
)
関連
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] 数値の配列の和の求め方
-
[解決済み] 最大和サブアレイのブルートフォースはなぜO(n^2)なのか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] C言語で配列のサイズを決定するにはどうすればよいですか?
-
[解決済み] 配列のすべてのメンバーを同じ値で初期化するには?
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] Bashでインデックスを指定せずに配列に新しい要素を追加する
-
[解決済み] mongodbの最後のN個のレコードを取得する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 2のTypeScriptで配列にフィルタをかけるには?
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] Rで3D行列をセットアップし、特定の要素にアクセスする
-
[解決済み] Scala:Arrayに要素を追加する最良の方法は何ですか?
-
[解決済み] RubyのArrayクラスで配列の各要素を2乗する方法は?
-
[解決済み] Twigでの出力配列
-
[解決済み] SwiftでUInt8バイト配列を文字列に変換する方法
-
[解決済み] 選択ソートが安定する理由と不安定な理由
-
[解決済み] Powershellで配列の値をソートする
-
[解決済み] TypeScriptの配列を文字列リテラルに変換するタイプ