Điều tôi cố gắng thực hiện khá đơn giản, tôi có một mảng bên trong tài liệu;MongoDB chèn tài liệu "hoặc" trường gia tăng nếu tồn tại trong mảng
"tags": [
{
"t" : "architecture",
"n" : 12
},
{
"t" : "contemporary",
"n" : 2
},
{
"t" : "creative",
"n" : 1
},
{
"t" : "concrete",
"n" : 3
}
]
Tôi muốn đẩy một loạt các mặt hàng để mảng như
["architecture","blabladontexist"]
Nếu mục tồn tại, tôi muốn tăng giá trị n
đối tượng (trong trường hợp này architecture
của nó),
và nếu không, thêm nó dưới dạng một Mục mới (với giá trị là n=0
) { "t": "blabladontexist", "n":0}
Tôi đã thử $addToSet
, $set
, $inc
, $upsert: true
với nhiều kết hợp và không thể thực hiện được.
Làm cách nào chúng tôi có thể thực hiện việc này trong MongoDB?
Bạn đã nhìn vào đường ống tổng hợp chưa? –
Tôi đoán tập hợp nó không phải giải pháp cho vấn đề, vì nó chỉ chọn dữ liệu từ bộ sưu tập. @Sadettin Bilal Savaş cần chèn dữ liệu. Nó chỉ có lý do nếu cấu trúc của bộ sưu tập sẽ thay đổi. – Kison
Bạn có cân nhắc việc thay đổi cấu trúc dữ liệu của mình thành giải pháp không? Ví dụ: bạn có thể tham chiếu đến ID thực thể 'Thẻ' trong mảng' thẻ' của mình. –