[解決済み] mongodbで子オブジェクトを問い合わせる方法
2023-07-11 10:49:43
質問
私はmongodbの初心者で、子オブジェクトをクエリしようとしています。私は州のコレクションを持っており、各州は子の都市を持っています。Citiesの1つにNameプロパティがあり、それがNullであるため、私のアプリでエラーが発生しています。Stateコレクションを照会して、name==nullを持つ子Cityを見つけるにはどうしたらよいでしょうか?
どのように解決するのですか?
もし、正確に
null
(設定されていないのとは対照的)です。
db.states.find({"cities.name": null})
(というように、都市配列が全くない文書にもマッチします(ただし、javierfpさんが指摘されているように、都市配列があることを前提にしています)。
もし、そのプロパティが設定されていない場合。
db.states.find({"cities.name": {"$exists": false}})
この2つのインサートで作成したコレクションで上記をテストしてみました。
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
最初のクエリは最初の状態を見つけ、2番目のクエリは2番目の状態を見つけます。もし一回のクエリで両方を見つけたい場合は
$or
クエリを作成します。
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})
関連
-
[解決済み] 配列のサイズが1より大きい文書を検索します。
-
[解決済み] mongo - サーバー 127.0.0.1:27017 に接続できませんでした。
-
[解決済み] 同じデータベース内でコレクションをコピーする最も速い方法は何ですか?
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] MongoDBのリレーションシップ:埋め込みか参照か?
-
[解決済み] Node.jsのWebアプリケーションでMongoDBの接続を管理するにはどうすればよいですか?
-
[解決済み】MongoDBでデータのバージョニングを実装する方法
-
[解決済み] MongoDB のオブジェクトを部分的に更新して、新しいオブジェクトを既存のオブジェクトにオーバーレイ/マージするにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MongoDB Compass フィルタ (クエリ)
-
[解決済み] mongodb シェルでドキュメントの値を印刷する
-
[解決済み] Mongodbでキーに基づいた重複を削除する方法は?
-
[解決済み] mongodb サーバーに接続しようとすると、mongo コマンドが認識されません。
-
[解決済み] mongodb Failed: error connecting to db server: no reachable servers
-
[解決済み] MongoDBの命名規則とは何ですか?
-
[解決済み】Dockerコンテナのディスク使用量を分析する方法
-
[解決済み】データベースとしてのNoSQL(MongoDB) vs Lucene(またはSolr)【クローズド
-
[解決済み】Node.js Mongoose.js の文字列を ObjectId に変換する関数
-
[解決済み] MongoDBのマルチテナントデータベースへの推奨されるアプローチとは?