如何在MongoDB中的嵌入式文档中插入新数据 [英] how to insert new data in an embedded document in MongoDB

查看:229
本文介绍了如何在MongoDB中的嵌入式文档中插入新数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个关于公司员工的文档,每个员工都有多个地址.这是一个嵌入式文档

I have a document about employees of a company and each employee has multiple addresses. It is an embedded document

{
   _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",
                  }
              ]
}

现在,我想为此员工插入一个新地址.为该员工插入新地址的查询是什么?

Now I want to insert a new address for this employee. What is the query to insert new address for this employee??

推荐答案

所需的是更新文档.您需要使用 update() 方法和 $push 运算符附加指定值到一个数组.

What is want is update your document. You need to use the update() method and the $push operator which appends a specified value to an array.

演示

更新操作之前的文档.

{ 
        "_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":

Now let push the following address to the "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"
        }
    }}
)

在我们进行更新操作之后.

After our update operation.

{
        "_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 避免在数组中重复地址.

You can also use the $addToSet to avoid duplicate address in the array.

这篇关于如何在MongoDB中的嵌入式文档中插入新数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆