MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

対応する重複する名前のフィールド値の数を取得するためのMongoDB集計?


例を見て、ドキュメントを使用してコレクションを作成しましょう-

> db.demo558.insertOne(
... {
...    _id : 100,
...    CountryCode:101,
...    details: [
...       {
...          Name:"Chris",
...          Subject:"MySQL"
...       },
...       {
...          Name:"Chris",
...          Subject:"MongoDB"
...       },
...       {
...          Name:"Chris",
...          Subject:"Java"
...       },
...       {
...          Name:"Bob",
...          Subject:"Python"
...       },
...       {
...          Name:"Bob",
...          Subject:"Java"
...       }
...    ]
... }
... )
{ "acknowledged" : true, "insertedId" : 100 }

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo558.find();

これにより、次の出力が生成されます-

{ "_id" : 100, "CountryCode" : 101, "details" : [
   { "Name" : "Chris", "Subject" : "MySQL" },
   { "Name" : "Chris", "Subject" : "MongoDB" },
   { "Name" : "Chris", "Subject" : "Java" },
   { "Name" : "Bob", "Subject" : "Python" },
   { "Name" : "Bob", "Subject" : "Java" }
] }

以下は、カウントを取得するためのクエリです-

> db.demo558.aggregate([
...    {$unwind: "$details" },
...    {$group: { _id: "$details.Name", NameCount:{$sum : 1}, Subject : {$push: "$details.Subject"}}},
...    {$project: { NameCount: 1, SubjectCount : {$size: "$Subject"}}}
... ]).pretty()

これにより、次の出力が生成されます-

{ "_id" : "Bob", "NameCount" : 2, "SubjectCount" : 2 }
{ "_id" : "Chris", "NameCount" : 3, "SubjectCount" : 3 }

  1. フィールドの戻り値を制限するMongoDBクエリ?

    これには、$sliceを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo594.insertOne( ...    { ...       id:1, ...       details:[ ...          {Name:"Chris",Age:21}, ...          {Name:"Bob",Age:20}, ...

  2. MySQLの単一の列から重複する値の数を取得しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Number int -> ); Query OK, 0 rows affected (0.83 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(20); Query OK, 1