如何更新 MongoDB 文档以向数组中添加新项?


要向数组中添加新项,你可以使用 $push 运算符。我们首先实现以下查询以创建一个文档集合

> db.updateDemo.insertOne({"StudentName":"Larry","StudentCoreSubject":["Java","C"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c98ba78330fd0aa0d2fe4c9")
}
>db.updateDemo.insertOne({"StudentName":"Robert","StudentCoreSubject":["C++","MongoDB"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c98ba8b330fd0aa0d2fe4ca")
}
> db.updateDemo.insertOne({"StudentName":"Chris","StudentCoreSubject":["Python"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c98ba9b330fd0aa0d2fe4cb")
}

以下是使用 find() 方法显示集合中所有文档的查询

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

这将产生以下输出

{
   "_id" : ObjectId("5c98ba78330fd0aa0d2fe4c9"),
   "StudentName" : "Larry",
   "StudentCoreSubject" : [
      "Java",
      "C"
   ]
}
{
   "_id" : ObjectId("5c98ba8b330fd0aa0d2fe4ca"),
   "StudentName" : "Robert",
   "StudentCoreSubject" : [
      "C++",
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5c98ba9b330fd0aa0d2fe4cb"),
   "StudentName" : "Chris",
   "StudentCoreSubject" : [
      "Python"
   ]
}

以下是向数组中添加新项的查询

> db.updateDemo.update( { _id:ObjectId("5c98ba78330fd0aa0d2fe4c9") }, { $push: { "StudentCoreSubject": "MySQL" } });
Updated 1 existing record(s) in 2ms
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

现在检查该项是否已插入数组中

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

将产生以下输出。字符串“MySQL”成功插入 id 为 5c98ba78330fd0aa0d2fe4c9 中

{
   "_id" : ObjectId("5c98ba78330fd0aa0d2fe4c9"),
   "StudentName" : "Larry",
   "StudentCoreSubject" : [
      "Java",
      "C",
      "MySQL"
   ]
}
{
   "_id" : ObjectId("5c98ba8b330fd0aa0d2fe4ca"),
   "StudentName" : "Robert",
   "StudentCoreSubject" : [
      "C++",
      "MongoDB"
   ]
}
{
   "_id" : ObjectId("5c98ba9b330fd0aa0d2fe4cb"),
   "StudentName" : "Chris",
   "StudentCoreSubject" : [
      "Python"
   ]
}

更新于:2019-07-30

216 次浏览

启动您的 职业生涯

完成此课程获得认证

开始学习
广告
© . All rights reserved.