我有一份关于公司员工的文件,每个员工都有多个地址。这是一个嵌入式文档
{
_id: 12,
emp_name: "Joy Pett",
emp_gender: "Male",
emp_address: [
{
street: "123 Fake Street",
city: "Faketon",
state: "MA",
},
{
street: "1 Some Other Street",
city: "Boston",
state: "MA",
}
]
}
现在我想为这名员工插入一个新地址。为该员工插入新地址的查询是什么?
答案 0 :(得分:1)
想要的是更新您的文档。您需要使用update()
方法和$push
运算符,该运算符将指定值附加到数组。
演示
更新操作前的文档。
{
"_id" : 12,
"emp_name" : "Joy Pett",
"emp_gender" : "Male",
"emp_address" : [
{
"street" : "123 Fake Street",
"city" : "Faketon",
"state" : "MA"
},
{
"street" : "1 Some Other Street",
"city" : "Boston",
"state" : "MA"
}
]
}
现在让我们将以下地址推送到" emp_address":
{
street: "125 Fake2 Street2",
city: "Faketon2",
state: "SA"
}
我们的查询:
db.collection.update({ '_id': 12 },
{ '$push': {
'emp_address': {
street: "125 Fake2 Street2",
city: "Faketon2",
state: "SA"
}
}}
)
我们的更新操作后。
{
"_id" : 12,
"emp_name" : "Joy Pett",
"emp_gender" : "Male",
"emp_address" : [
{
"street" : "123 Fake Street",
"city" : "Faketon",
"state" : "MA"
},
{
"street" : "1 Some Other Street",
"city" : "Boston",
"state" : "MA"
},
{
"street" : "125 Fake2 Street2",
"city" : "Faketon2",
"state" : "SA"
}
]
}
您还可以使用$addToSet
来避免数组中的重复地址。