使用另一个字段的值更新MongoDB字段?

您可以使用聚合函数使用另一个字段的值来更新MongoDB字段。在这里,我们将创建两个集合:

  • 名称

  • 学生信息

<名称>集合

使用文档创建第一个集合的查询如下:

> db.name.insert({"FirstName":"John","LastName":"Smith"});
WriteResult({ "nInserted" : 1 })

现在,您可以借助find()method显示集合中的所有文档。查询如下:

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

以下是显示集合“名称”文档的输出:

{
   "_id" : ObjectId("5c6c00dd68174aae23f5ef55"),
   "FirstName" : "John",
   "LastName" : "Smith"
}

<studentInformation>集合

使用文档创建第二个集合的查询如下:

> db.studentInformation.insert({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
WriteResult({ "nInserted" : 1 })

现在,您可以借助find()method显示集合中的所有文档。查询如下:

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

以下是输出:

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor"
}

现在,让我们用另一个集合“ studentInformation”更新集合“名称”。查询如下:

> db.studentInformation.aggregate( [
   {"$addFields":{"FullName":{"$concat":["$StudentFirstName"," ","$StudentLastName"]} }},
   {"$out":"name"} ] );

现在,您可以检查集合“名称”的文档。查询如下:

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

以下是显示我们已成功更新字段的输出:

{
   "_id" : ObjectId("5c6c013068174aae23f5ef56"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor",
   "FullName" : "Carol Taylor"
}