如何更新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”已成功插入ID5c98ba78330fd0aa0d2fe4c9
{ "_id" : ObjectId("5c98ba78330fd0aa0d2fe4c9"), "StudentName" : "Larry", "StudentCoreSubject" : [ "Java", "C", "MySQL" ] } { "_id" : ObjectId("5c98ba8b330fd0aa0d2fe4ca"), "StudentName" : "Robert", "StudentCoreSubject" : [ "C++", "MongoDB" ] } { "_id" : ObjectId("5c98ba9b330fd0aa0d2fe4cb"), "StudentName" : "Chris", "StudentCoreSubject" : [ "Python" ] }