在 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 }

更新于: 30-7-2019

177 次浏览

开启您的 职业 生涯

完成本课程,获得认证

开始
广告
© . All rights reserved.