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


你可以使用聚合函数来更新 MongoDB 字段以使用某个其他字段的值。在此处,我们将创建两个集合

  • 名称

  • studentInformation

<名称>集合

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

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

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

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

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

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

<studentInformation>集合

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

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

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

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

更新于: 30-Jul-2019

超过 2K 浏览

开启你的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.