[解決済み] mongo グループクエリ フィールドを保持する方法
2022-08-14 02:23:43
質問
皆さん、こんにちは。 mongoのグループクエリでは、結果は引数のキー(複数可)だけを表示します。mysqlのクエリグループのように、各グループの最初のドキュメントを保持するにはどうすればよいでしょうか。 例えば
-------------------------------------------------------------------------
| name | age | sex | province | city | area | address |
-------------------------------------------------------------------------
| ddl1st | 22 | 纯爷们 | BeiJing | BeiJing | ChaoYang | QingNianLu |
| ddl1st | 24 | 纯爷们 | BeiJing | BeiJing | XuHui | ZhaoJiaBangLu |
| 24k | 220 | ... | .... | ... | ... | ... |
-------------------------------------------------------------------------
db.users.group({key: { name: 1},reduce: function ( curr, result ) { result.count ++ },initial: {count : 0 } })
の結果です。
[
{
"name" : "ddl1st",
"count" : 1
},
{
"name" : "24k",
"count" : 1
}
]
以下のように取得する方法です。
[
{
"name" : "ddl1st",
"age" : 22,
"sex" : "纯爷们",
"province" : "BeiJing",
"city" : "BeiJing",
"area" : "ChaoYang",
"address" : "QingNianLu",
"count" : 1
},
{
"name" : "24k",
"age" : 220,
"sex" : "...",
"province" : "...",
"city" : "...",
"area" : "...",
"address" : "...",
"count" : 1
}
]
どのように解決するのですか?
グループごとに最初にマッチしたエントリーの情報を残したい場合は、次のように集計してみるとよいでしょう。
db.test.aggregate([{
$group: {
_id : '$name',
name : { $first: '$name' },
age : { $first: '$age' },
sex : { $first: '$sex' },
province : { $first: '$province' },
city : { $first: '$city' },
area : { $first: '$area' },
address : { $first: '$address' },
count : { $sum: 1 },
}
}]);
関連
-
[解決済み】MongoError: 最初の接続でサーバー [localhost:27017] への接続に失敗しました。
-
[解決済み] 配列のサイズが1より大きい文書を検索します。
-
[解決済み] MongoDB Compass フィルタ (クエリ)
-
[解決済み] MongoDBと同等ではない
-
[解決済み] MongoDB: 1つのコマンドで複数のドキュメントを更新するには?
-
[解決済み] MongoDB 3.2 の認証に失敗しました
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み】シェルスクリプトでmongoのコマンドを実行するには?
-
[解決済み] ソート順を指定しない場合、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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SocketException: アドレスはすでに使用中です。
-
[解決済み] mongodb count フィールド/キーごとの明確な値の数
-
[解決済み] MongoDB Compass フィルタ (クエリ)
-
[解決済み] HomebrewでMongoDBをインストールする
-
[解決済み] mongodb aggregation sort
-
[解決済み] SocketException: アドレスはすでに使用中です MONGODB
-
[解決済み】データベースとしてのNoSQL(MongoDB) vs Lucene(またはSolr)【クローズド
-
[解決済み] MongoDB SELECT COUNT GROUP BY
-
[解決済み】MongoDBで整数を挿入しようとすると、浮動小数点が挿入される。
-
[解決済み】MongoDBのすべてのドキュメントのフィールド名を変更するにはどうすればよいですか?