如何在MongoDB中合并多个文档?

要在MongoDB中合并多个文档,请使用aggregate()。让我们创建一个包含文档的集合-

> db.demo436.insertOne(

...    {

...       "_id" : "101",

...       "Name": "Chris",

...       "details" : [

...          {

...             "CountryName" : "US",

...             "Age" : 21

...          }

...       ],

...       "Price" : 50

...    }

... );

{ "acknowledged" : true, "insertedId" : "101" }

> db.demo436.insertOne(

...    {

...       "_id" : "102",

...       "Name": "Chris",

...       "details" : [

...          {

...             "CountryName" : "UK",

...             "Age" : 22

...          }

...       ],

...       "Price" : 78

...    }

... );

{ "acknowledged" : true, "insertedId" : "102" }

> db.demo436.insertOne(

...    {

...       "_id" : "103",

...       "Name": "Chris",

...       "details" : [

...          {

...             "CountryName" : "US",

...             "Age" : 21

...          }

...       ],

..      . "Price" : 50

...    }

... );

{ "acknowledged" : true, "insertedId" : "103" }

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

> db.demo436.find();

这将产生以下输出-

{ "_id" : "101", "Name" : "Chris", "details" : [ { "CountryName" : "US", "Age" : 21 } ], "Price" : 50 }

{ "_id" : "102", "Name" : "Chris", "details" : [ { "CountryName" : "UK", "Age" : 22 } ], "Price" : 78 }

{ "_id" : "103", "Name" : "Chris", "details" : [ { "CountryName" : "US", "Age" : 21 } ], "Price" : 50 }

以下是在MongoDB中合并多个文档的查询-

> db.demo436.aggregate([

...    {$sort: {_id: 1, Name: 1}},

...    {$unwind: '$details'},

...    {$group: {_id: '$Name', details: {$push: '$details'},

...    Price: {$sum: '$Price'},

...    id: {$last: {$concat: ["$_id", "_", "AppendedValue" ]}},

...    Name: {$last: '$Name'}}},

...    {$addFields: {Id: 'NewIdAppped', _id: '$id'}},

...    {$project: {"id": 0 }}])

这将产生以下输出-

{ "_id" : "103_AppendedValue", "details" : [ { "CountryName" : "US", "Age" : 21 }, { "CountryName" : "UK", "Age" : 22 }, { "CountryName" : "US", "Age" : 21 } ], "Price" : 178, "Name" : "Chris", "Id" : "NewIdAppped" }

以上是 如何在MongoDB中合并多个文档? 的全部内容, 来源链接: utcz.com/z/321791.html

回到顶部