MongoDB Advanced Query, Array, Aggregation
MongoDB Advanced Query, Array, Aggregation
6. Tampilkan summary data authors, books, dan publishers sesuai dengan Output.
db.books.aggregate([
{
$lookup: {
from: "authors",
localField: "authorID",
foreignField: "_id",
as: "authors"
}
},
{
$lookup: {
from: "publishers",
localField: "publisherID",
foreignField: "_id",
as: "publishers"
}
},
{$unwind: "$publishers"},
{$unwind: "$authors"},
{
$group: {
_id: {$concat: ["$authors.firstName", " ", "$authors.lastName"]},
number_of_books: {$sum: 1},
list_of_books: {$push: {$concat: ["$title", "(", "$publishers.publisherName",
")"]}}
}
},
{
$sort: {number_of_books: 1}
}
])
8. Tampilkan semua nama buku, harga, nama author dan nama publisher, urutkan dari
harga termahal ke termurah
db.books.aggregate([
{
$lookup: {
from: "authors",
localField: "authorID",
foreignField: "_id",
as: "authors"
}
},{
$lookup: {
from: "publishers",
localField: "publisherID",
foreignField: "_id",
as: "publishers"
}
},
{$unwind: "$authors"},
{$unwind: "$publishers"},
{
$project: {
_id: 1,
tittle: 1,
price: 1,
author: {$concat : ["$authors.firstName", " ", "$authors.lastName"]},
publisher: "$publishers.publisherName"
}
},
{
$sort: {price: -1}
}])
9. Tampilkan data nama buku harga dan publisher, kemudian tampilkan hanya data ke 3
dan ke 4.
db.books.aggregate([
{
$lookup: {
from: "authors",
localField: "authorID",
foreignField: "_id",
as: "authors"
}
},{
$lookup: {
from: "publishers",
localField: "publisherID",
foreignField: "_id",
as: "publishers"
}
},
{$unwind: "$authors"},
{$unwind: "$publishers"},
{
$project: {
_id: 1,
tittle: 1,
price: 1,
publisher: "$publishers.publisherName"
}
},
{
$skip: 2
},{
$limit: 2
}
])