MongoDB 嵌套数组中的 $push?
这里,$push 可用于在嵌套数组中添加新文档。为了理解上述 $push 概念,我们创建一个包含嵌套数组文档的集合。用于创建包含文档的集合的查询如下所示
>db.nestedArrayDemo.insertOne({"EmployeeName":"Larry","EmployeeSalary":9000,"EmployeeDetails":
[{"EmployeeDOB":new Date('1990-01-21'),"EmployeeDepartment":"ComputerScience","EmployeeProject":
[{"Technology":"C","Duration":6},{"Technology":"Java","Duration":7}]}]});以下为输出
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6d73090c3d5054b766a76e")
}现在可以使用 find() 方法从集合中显示文档。该查询如下所示
> db.nestedArrayDemo.find().pretty();
以下为输出
{
"_id" : ObjectId("5c6d73090c3d5054b766a76e"),
"EmployeeName" : "Larry",
"EmployeeSalary" : 9000,
"EmployeeDetails" : [
{
"EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"),
"EmployeeDepartment" : "ComputerScience",
"EmployeeProject" : [
{
"Technology" : "C",
"Duration" : 6
},
{
"Technology" : "Java",
"Duration" : 7
}
]
}
]
}以下是 $push 在嵌套数组中添加新文档的演示。该查询如下所示
>db.nestedArrayDemo.update({"_id":ObjectId("5c6d73090c3d5054b766a76e"),
"EmployeeDetails.EmployeeDepartment":"ComputerScience"}, {"$push":
{"EmployeeDetails.$.EmployeeProject": {"Technology":"Python", "Duration":4 }}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })在上述查询中,我在嵌套数组中添加了一个文档 {"Technology":"Python", "Duration":4 }。现在再次显示集合中的文档。该查询如下所示
> db.nestedArrayDemo.find().pretty();
以下为输出
{
"_id" : ObjectId("5c6d73090c3d5054b766a76e"),
"EmployeeName" : "Larry",
"EmployeeSalary" : 9000,
"EmployeeDetails" : [
{
"EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"),
"EmployeeDepartment" : "ComputerScience",
"EmployeeProject" : [
{
"Technology" : "C",
"Duration" : 6
},
{
"Technology" : "Java",
"Duration" : 7
},
{
"Technology" : "Python",
"Duration" : 4
}
]
}
]
}
广告
数据结构
联网
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP