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

MongoDBで内部配列サイズをクエリしていますか?


MongoDBの内部配列サイズには$size演算子を使用できます。構文は次のとおりです。

db.internalArraySizeDemo.aggregate(
   [
      {
         $group: {
            _id:yourObjectIdValue,
            anyFieldName: {$first: {$size: "$yourArrayName" }}
         }
      }
   ]
);

上記の構文を理解するために、いくつかのドキュメントを使用してコレクションを作成しましょう。ドキュメントを含むコレクションを作成するためのクエリは次のとおりです。

>db.internalArraySizeDemo.insertOne({"EmployeeName":"Mike","EmployeeTechnology":["Jav
a Web Development","Python Web Development"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6eff586fd07954a48906b2")
}
> db.internalArraySizeDemo.insertOne({"EmployeeName":"Sam","EmployeeTechnology":["C
with Graphics","Game Development with C++ Language","MatLab"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6effcd6fd07954a48906b3")
}

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです。

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6eff586fd07954a48906b2"),
   "EmployeeName" : "Mike",
   "EmployeeTechnology" : [
      "Java Web Development",
      "Python Web Development"
   ]
}
{
   "_id" : ObjectId("5c6effcd6fd07954a48906b3"),
   "EmployeeName" : "Sam",
   "EmployeeTechnology" : [
      "C with Graphics",
      "Game Development with C++ Language",
      "MatLab"
   ]
}

$size演算子を使用して内部配列サイズを取得するためのクエリは次のとおりです。

> db.internalArraySizeDemo.aggregate(
...    [
...       {
...          $group: {
...             _id:ObjectId("5c6eff586fd07954a48906b2"),
...             EmployeeTechnology_count: {$first: {$size: "$EmployeeTechnology" }}
...          }
...       }
...    ]
... );

出力は次のとおりです。

{ "_id" : ObjectId("5c6eff586fd07954a48906b2"), "EmployeeTechnology_count" : 2 }

  1. MongoDBのサブドキュメントの配列をクエリする

    サブドキュメントの配列をクエリするには、MongoDBで$unwindを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo499.insertOne({ ... "details": ...    [ ...       { ...          Name :"MIT", ...          Rank: 1, ...      

  2. MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?

    ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "studentInformation": [ ...          {