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

ドキュメント内の配列アイテムの数をカウントし、新しいフィールドに表示するMongoDBクエリ


ドキュメント内の配列アイテムの数をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo703.insertOne({"ListOfSubject":["MySQL","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebaf551299a9f98c93b4")
}
> db.demo703.insertOne({"ListOfSubject":["Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebb5551299a9f98c93b5")
}
> db.demo703.insertOne({"ListOfSubject":["C","C++","Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6ebbf551299a9f98c93b6")
}

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

> db.demo703.find();

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

{ "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"), "ListOfSubject" : [ "MySQL", "MongoDB" ] }
{ "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"), "ListOfSubject" : [ "Java" ] }
{ "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"), "ListOfSubject" : [ "C", "C++", "Python" ] }

以下は、配列アイテムの数をカウントするためのクエリです-

>db.demo703.aggregate({$project:{NumberOfItemsInEachArray:{$size:"$ListOfSubject"}}}).pretty();

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

{
   "_id" : ObjectId("5ea6ebaf551299a9f98c93b4"),
   "NumberOfItemsInEachArray" : 2
}
{
   "_id" : ObjectId("5ea6ebb5551299a9f98c93b5"),
   "NumberOfItemsInEachArray" : 1
}
{
   "_id" : ObjectId("5ea6ebbf551299a9f98c93b6"),
   "NumberOfItemsInEachArray" : 3
}

  1. 新しいフィールドを追加し、価格結果を特定の数値で割った値を連結するMongoDBクエリ

    新しいフィールドを追加するには、MongoDBの$addFieldsを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo719.insertOne( ...    { ...       "Number":"7374644", ...       "details" : { ...          "otherDetails" : [ ... &

  2. 名前でグループ化し、カウントを新しい列に表示するMySQLクエリ

    COUNT()メソッドでGROUPBYを使用します。名前をGROUPBYでグループ化し、COUNT()メソッドを使用してカウントします。まずテーブルを作成しましょう- mysql> create table DemoTable (    Name varchar(30) ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris'); Query OK, 1 row aff