[解決済み] 配列のサイズが1より大きい文書を検索します。
2022-02-07 09:32:36
質問
以下の形式のドキュメントを含むMongoDBコレクションを持っています。
{
"_id" : ObjectId("4e8ae86d08101908e1000001"),
"name" : ["Name"],
"zipcode" : ["2223"]
}
{
"_id" : ObjectId("4e8ae86d08101908e1000002"),
"name" : ["Another ", "Name"],
"zipcode" : ["2224"]
}
現在、特定の配列サイズに一致するドキュメントを取得することができます。
db.accommodations.find({ name : { $size : 2 }})
これは、2つの要素を持つドキュメントを正しく返します。
name
の配列になります。しかし、私は
$gt
コマンドで
name
フィールドの配列サイズが 2 より大きい場合。
db.accommodations.find({ name : { $size: { $gt : 1 } }})
ですべてのドキュメントを選択するにはどうすればよいですか?
name
の配列で、サイズが1より大きい場合、(できれば現在のデータ構造を変更することなく)どうすればよいのでしょうか?
解決方法は?
更新してください。
mongodbのバージョンについて 2.2+ で説明されているより効率的な方法です。 JohnnyHK 別の 回答 .
1.使用方法 ここで
db.accommodations.find( { $where: "this.name.length > 1" } );
でも...
Javascriptは、ここに挙げたネイティブの演算子よりも実行速度が遅いです。 しかし、非常に柔軟性があります。サーバーサイド処理のページ をご覧ください。
2.作成
エクストラ
フィールド
NamesArrayLength
を作成し、それを名前の配列の長さで更新して、クエリで使用します。
db.accommodations.find({"NamesArrayLength": {$gt: 1} });
これはより良いソリューションで、より高速に動作します (インデックスを作成できます)。
関連
-
[解決済み] コマンド1つでmongo DBを停止する方法
-
[解決済み] mongodの書き込みに関するデフォルトの懸念はどのバージョンにありますか?
-
[解決済み] mongoDB の文字列フィールドの値の長さ
-
CentOS7に新規インストールしたMongodbの初期設定
-
[解決済み] MongoDBの命名規則とは何ですか?
-
[解決済み】MongoDBでデータのバージョニングを実装する方法
-
[解決済み】Dockerコンテナのディスク使用量を分析する方法
-
[解決済み】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: select distinct フィールド値
-
[解決済み] MongoDB の個別集計
-
[解決済み] HomebrewでMongoDBをインストールする
-
[解決済み] mongod.serviceの再起動に失敗しました。ユニット mongod.service が見つかりませんでした
-
[解決済み] 条件付きでMongoDBを更新する
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
CentOS7に新規インストールしたMongodbの初期設定
-
[解決済み] MongoDBの命名規則とは何ですか?
-
[解決済み] MongoDB: 1つのコマンドで複数のドキュメントを更新するには?