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

MongoDBで配列要素のトップカウントを維持するにはどうすればよいですか?


集約フレームワークを使用できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.topCountArrayDemo.insertOne(
...    {"StudentId":101 , "StudentSubject": ["C", "MongoDB"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc6b3209cb58ca2b005e669")
}
> db.topCountArrayDemo.insertOne(
...    {"StudentId":102 , "StudentSubject": ["C", "Java"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc6b3219cb58ca2b005e66a")
}
> db.topCountArrayDemo.insertOne(
...    {"StudentId":103 , "StudentSubject": ["C", "MongoDB"]}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc6b3229cb58ca2b005e66b")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.topCountArrayDemo.find().pretty();

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

{
   "_id" : ObjectId("5cc6b3209cb58ca2b005e669"),
   "StudentId" : 101,
   "StudentSubject" : [
      "C",
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5cc6b3219cb58ca2b005e66a"),
   "StudentId" : 102,
   "StudentSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5cc6b3229cb58ca2b005e66b"),
   "StudentId" : 103,
   "StudentSubject" : [
      "C",
      "MongoDB"
   ]
}

以下は、MongoDBの配列要素のトップカウントを維持するためのクエリです-

> db.topCountArrayDemo.aggregate(
...    [
...       {
...          $unwind: "$StudentSubject"
...       },
...       {
...          $group: {
...             _id: "$StudentSubject",
...             Frequency: {$sum: 1}
...          }
...       },
...       {
...          $sort: {Frequency:-1}
...       },
...       {
...          $limit: 2
...       }
...    ]
... ).pretty();

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

{ "_id" : "C", "Frequency" : 3 }
{ "_id" : "MongoDB", "Frequency" : 2 }

  1. MongoDBドキュメントの特定のフィールドから配列要素の数を取得しますか?

    特定のフィールドから配列要素をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eab094d43417811278f588a") } >

  2. C#の2次元配列から要素にアクセスするにはどうすればよいですか?

    2次元配列は、x個の行とy個の列を持つテーブルと考えることができます。 2次元配列の要素には、添え字を使用してアクセスします。つまり、配列の行インデックスと列インデックスです。 int x = a[1,1]; Console.WriteLine(x); 2次元配列から要素にアクセスする方法を示す例を見てみましょう。 例 using System; namespace Demo {    class MyArray {       static void Main(string[] args) {       &