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

MongoDBで配列サイズフィールドを合計する最良の方法は?


配列サイズフィールドを合計するには、$sumと$sizeを併用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo231.insertOne({"Subjects":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc73ff4cebbeaebec5143")
}
> db.demo231.insertOne({"Subjects":["Java","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc757f4cebbeaebec5144")
}
> db.demo231.insertOne({"Subjects":["Python","Spring"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc762f4cebbeaebec5145")
}

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

> db.demo231.find();

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

{ "_id" : ObjectId("5e3fc73ff4cebbeaebec5143"), "Subjects" : [ "MongoDB", "MySQL", "SQL Server" ] }
{ "_id" : ObjectId("5e3fc757f4cebbeaebec5144"), "Subjects" : [ "Java", "C", "C++" ] }
{ "_id" : ObjectId("5e3fc762f4cebbeaebec5145"), "Subjects" : [ "Python", "Spring" ] }

以下は、MongoDBの配列サイズフィールドを合計するためのクエリです-

> db.demo231.aggregate([{'$group': {'_id': '_id', 'ToTalValue': {'$sum': {'$size': '$Subjects'}}}}])

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

{ "_id" : "_id", "ToTalValue" : 8 }

  1. 配列の値を他のフィールドと連結するためのMongoDBクエリ

    MongoDBで連結するには、$projectで$concatを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo359.insertOne( ...    { ... ...       Name1: "Chris", ...       Name2: "David", ...       Subjects: ["MySQL","MongoDB","Jav

  2. MongoDBの配列フィールドを操作してすべてに一致させるにはどうすればよいですか?

    MongoDBのすべてに一致させるには、$allを使用します。 $ all演算子は、フィールドの値が指定されたすべての要素を含む配列であるドキュメントを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo695.insertOne({"ListOfValues":[100,200,500,800]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6d4c4551299a9f