Làm cách nào để thêm trường vào mảng đối tượng trong mongodb?

Tôi muốn chèn các đối tượng mới vào trường mảng tài liệu MongoDB

Ban đầu nó trông như thế này

Làm cách nào để thêm trường vào mảng đối tượng trong mongodb?

Tôi muốn chèn một Đối tượng mới vào trường "thông báo" (Mảng).
Sau khi up lên, nó sẽ như thế này.

Làm cách nào để thêm trường vào mảng đối tượng trong mongodb?

Tôi đang sử dụng mã định dạng bên dưới

# conn_usr is a mongolite's mongo connection object
conn_usr$update(query  = '{ "user": "user" }',
                update = '{ "$set": {"notifications":[{"key1": "x",  "key2": "y"}] } }',
                upsert = TRUE  ) # 

Mã này thay thế mục đầu tiên, không chèn vào trường "thông báo".
Mọi trợ giúp đều được đánh giá cao.

Tôi có bộ sưu tập sau (các lĩnh vực)

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ]
            }
        ]
    }
]

Tôi cũng có một bộ sưu tập khác (chủ sở hữu)

[
    {
        name: "Josh", 
        age: 65, 
        male: true, 
        location: "LA"
    }
]

Tôi muốn truy vấn tổng hợp để làm như sau

  1. Đối với mỗi tài liệu ngành, đi qua từng tổ chức
  2. Tìm tài liệu chủ sở hữu tương ứng với chỉ mục 0 của mảng chủ sở hữu
  3. Thêm các trường { name, age, male } vào tổ chức

Tôi muốn có được kết quả này

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ], 

                name: "Josh", 
                age: 65, 
                male: true
            }
        ]
    }
]

Tôi đang viết cái này trong Node. js. Đây là mã hiện tại của tôi

await Sector.aggregate([
    // Perhaps something with $lookup?

    { $match: query },

    { $skip: skip },
    { $limit: limit }
]);

Tôi hoàn toàn mới để tổng hợp với MongoDB. Bất cứ ai có thể cho tôi biết làm thế nào nó được thực hiện?

Cảm ơn trước

Trong MongoDB, toán tử $push được sử dụng để nối một giá trị đã chỉ định vào một mảng. Nếu trường được đề cập không có trong tài liệu để cập nhật, toán tử $push sẽ thêm trường đó dưới dạng trường mới và bao gồm giá trị được đề cập làm thành phần của nó. Nếu trường cập nhật không phải là trường kiểu mảng thì thao tác không thành công

Tại thời điểm cập nhật nếu bản thân giá trị là một mảng, toán tử $push sẽ nối toàn bộ mảng dưới dạng một phần tử

Nếu bạn muốn thêm từng phần tử của giá trị một cách riêng biệt, toán tử $push có thể được sử dụng với công cụ sửa đổi $each

cú pháp

db.collection.update( ,{ $push: { :  } })

Thông số

TênMô tảtrường tên của cột hoặc trường vào tài liệu. giá trị. Đây là những giá trị được chỉ định cho các trường hoặc cột. truy vấn Truy vấn có thể là một biểu thức hoặc điều kiện hoặc tiêu chí

Bộ sưu tập mẫu "sinh viên"

{
        "_id" : 1,
        "sem" : 1,
        "subjects" : [
                "phys",
                "chem",
                "maths",
                "gkn",
                "stat",
                "astro"
        ],
        "achieve" : [
                70,
                87,
                90,
                90,
                65,
                81
        ]
}

Ví dụ về toán tử MongoDB $push

Nếu chúng ta muốn nối 95 vào trường mảng đạt được đối với các đối tượng điều kiện là "gkn", có thể sử dụng lệnh mongodb sau -

> db.student.update( { "subjects" : "gkn" },{ $push: { "achieve": 95 } });

Ở đây trong ví dụ trên, công cụ sửa đổi $each đã được sử dụng để nối nhiều phần tử 77,49,83 vào mảng đạt được khớp với điều kiện đối tượng bằng "gkn"

Bạn có thể sử dụng update() cùng với toán tử $ cho việc này. Trước tiên chúng ta hãy tạo một bộ sưu tập với các tài liệu -

________số 8

Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find() -

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

Điều này sẽ tạo ra đầu ra sau -

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ]
            }
        ]
    }
]
0

Sau đây là truy vấn để thêm một trường vào tài liệu được nhúng trong một mảng –

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ]
            }
        ]
    }
]
1

Hãy để chúng tôi hiển thị tất cả các tài liệu từ bộ sưu tập trên -

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ]
            }
        ]
    }
]
2

Điều này sẽ tạo ra đầu ra sau -

[
    {
        sector: "IT", 

        organizations: [
            {
                org: "ACME", 

                owners: [
                    "Josh", 
                    "Fred"
                ]
            }
        ]
    }
]
3

Làm cách nào để thêm trường vào mảng đối tượng trong mongodb?

Cập nhật ngày 30-Jul-2019 22. 30. 26

Trường mảng trong MongoDB là gì?

Mảng MongoDB là cấu trúc tài liệu linh hoạt; . Đây không là gì ngoài một danh sách các giá trị đơn giản và nó có thể có nhiều dạng trong MongoDB. . This is nothing but a simple list of values, and it can take many forms in MongoDB.

Bạn sẽ sử dụng phương pháp MongoDB nào để chèn một mảng dữ liệu?

Để chèn tài liệu vào bộ sưu tập MongoDB, chúng ta có thể sử dụng các phương thức khác nhau như insert(), insertOne() và insertMany().