如何使用MongoDB在数组字段中投影特定元素?

要在数组字段中使用特定于项目的元素,请使用$project。让我们创建一个包含文档的集合-

>db.demo355.insertOne({"id":101,"details":[{"Name":"Chris",isMarried:1},{"Name":"David",isMarried:0},{"Name":"Mike",isMarried:1}]});

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5e568928f8647eb59e5620c5")

}

find()方法的帮助下显示集合中的所有文档-

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

这将产生以下输出-

{

   "_id" : ObjectId("5e568928f8647eb59e5620c5"),

   "id" : 101,

   "details" : [

      {

         "Name" : "Chris",

         "isMarried" : 1

      },

      {

         "Name" : "David",

         "isMarried" : 0

      },

      {

         "Name" : "Mike",

         "isMarried" : 1

      }

   ]

}

以下是对数组字段中特定于项目的元素的查询-

> db.demo355.aggregate([

...    {

...       $project: {

...          details: {

...             $filter: {

...                input: "$details",

...                as: "out",

...                cond: { $eq:["$$out.isMarried",1] }

...             }

...          }

...       }

...    }

... ])

这将产生以下输出-

{

   "_id" : ObjectId("5e568928f8647eb59e5620c5"), "details" : [

      { "Name" : "Chris", "isMarried" : 1 },

      { "Name" : "Mike", "isMarried" : 1 }

   ] 

}

以上是 如何使用MongoDB在数组字段中投影特定元素? 的全部内容, 来源链接: utcz.com/z/316399.html

回到顶部