Đây là một phần của bộ sưu tập của tôi trong
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
8:[{"company":"Lenovo", "models":
[{"model":"ThinkPad T400", "gens":
[{"gen":"3", "start":2012},
{"gen":"2", "start":2008},
{"gen":"1", "start":2004}]
}...]
}...]
Tôi đang cố gắng đến với một lệnh tổng hợp sẽ trả lại cho tôi như sau:
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
Tôi đã thử lệnh tổng hợp sau nhưng nó không hoạt động:
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
Tôi nhận được kết quả này:
[{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
Có lẽ là do mỗi đối tượng của tôi có một mảng các đối tượng [mô hình] và các đối tượng đó cũng có một mảng các đối tượng [GENS].
Yêu cầu đúng cho MongoDB sẽ trả lại cho tôi kết quả dự kiến của tôi là gì?
Mẹo → MongoDB Manual
Converts a document to an array. The return array contains an element for each field/value pair in the original document. Each element in the return array is a document that contains two fields
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
0 and db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
1:Tài liệu về nhà → Hướng dẫn sử dụng MongoDB
9Conver một tài liệu cho một mảng. Mảng trả về chứa một phần tử cho mỗi cặp trường/giá trị trong tài liệu gốc. Mỗi phần tử trong mảng trả về là một tài liệu chứa hai trường[{ "_id":"Lenovo", "models":[{ "model": "ThinkPad T400", "gens":["1","2","3"] }...] }...]
0 vàdb.makes.aggregate[[{ $group:{ _id: '$company', models: { $push: { model: "$models.model", gen: "$models.gens.gen" }} } }]]
1:db.makes.aggregate[[{ $group:{ _id: '$company', models: { $push: { model: "$models.model", gen: "$models.gens.gen" }} } }]]
Trường
0 chứa tên trường trong tài liệu gốc. has the following syntax:db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
{ $objectToArray: }
Trường
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
1 chứa giá trị của trường trong tài liệu gốc.[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 applies to the top-level fields of its argument. If the argument is a document that itself contains embedded document fields, the
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 does not recursively apply to the embedded document fields.Để biết thêm thông tin về biểu thức, xem biểu thức.
Để biết thêm thông tin về biểu thức, xem biểu thức.
|
| |||||||||||||||||||||||
|
|
Xem xét bộ sưu tập
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
8 với các tài liệu sau:{ "_id" : 1, "item" : "ABC1", dimensions: { l: 25, w: 10, uom: "cm" } } { "_id" : 2, "item" : "ABC2", dimensions: { l: 50, w: 25, uom: "cm" } } { "_id" : 3, "item" : "XYZ1", dimensions: { l: 70, w: 75, uom: "cm" } }
Hoạt động đường ống tổng hợp sau đây Sử dụng
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 để trả về trường [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
0 dưới dạng mảng:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 to return the [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
0 field as an array:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
0Hoạt động trả về như sau:
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
1
Xem xét bộ sưu tập
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
8 với các tài liệu sau:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
2Hoạt động đường ống tổng hợp sau đây Sử dụng
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 để trả về trường [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
0 dưới dạng mảng:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 along with [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
3 and
[{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
4 to calculate the total items in stock per warehouse.[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
3Hoạt động trả về như sau:
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
4Xem xét bộ sưu tập
db.makes.aggregate[[{
$group:{
_id: '$company',
models: { $push: {
model: "$models.model",
gen: "$models.gens.gen"
}}
}
}]]
8 với các tài liệu sau:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
2Hoạt động đường ống tổng hợp sau đây Sử dụng
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 để trả về trường [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
0 dưới dạng mảng:[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
6Hoạt động trả về như sau:
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
7Hoạt động đường ống tổng hợp sau đây sử dụng [{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
9 cùng với [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
3 và [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
4 để tính tổng số các mặt hàng trong kho trên mỗi kho.
[{ "_id":"Lenovo",
"models":[{ "model": "ThinkPad T400",
"gens":["1","2","3"]
}...]
}...]
[{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
[{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
Hoạt động đường ống tổng hợp sau đây tính toán tổng số kho cho mỗi mục và thêm vào tài liệu [{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]
6:
[{ "_id":"Lenovo",
"models":[{ "model": ["ThinkPad T400"],
"gens":[ ["1","2","3"] ]
}...]
}...]