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
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.
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
- Đối với mỗi tài liệu ngành, đi qua từng tổ chức
- 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
- 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 -
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"
]
}
]
}
]
0Sau đâ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"
]
}
]
}
]
1Hã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"
]
}
]
}
]
3Cập nhật ngày 30-Jul-2019 22. 30. 26