126 lines
2.3 KiB
JavaScript
126 lines
2.3 KiB
JavaScript
db.getCollection('job_logs').find({ job: 54}).sort({ job: 1, date: -1})
|
|
|
|
var jobs = [177];
|
|
db.getCollection('job_logs').aggregate(
|
|
[
|
|
{ $match: { job: { $in: jobs } , type: 2 }},
|
|
{ $sort: { user: 1, date: -1 }},
|
|
{
|
|
$lookup: {
|
|
from: 'users',
|
|
localField: 'user',
|
|
foreignField: '_id',
|
|
as: 'userD'
|
|
}
|
|
},
|
|
// {
|
|
// $match: {
|
|
// 'userD.type': 9
|
|
// }
|
|
// },
|
|
{
|
|
$project: {
|
|
"date": 1,
|
|
"username": "$userD.username"
|
|
}
|
|
},
|
|
{ $unwind: '$username'},
|
|
{
|
|
$group:
|
|
{
|
|
_id: "$username",
|
|
date: { $first: "$date" }
|
|
}
|
|
},
|
|
{
|
|
$project: {
|
|
"user": "$_id",
|
|
"date": 1,
|
|
"_id": 0,
|
|
}
|
|
}
|
|
]
|
|
);
|
|
|
|
// Get all Customer info
|
|
db.customers.aggregate([
|
|
{
|
|
$lookup: {
|
|
from: "users",
|
|
localField: "user",
|
|
foreignField: "_id",
|
|
as: "user_detail"
|
|
}
|
|
},
|
|
]);
|
|
|
|
db.customers.aggregate([
|
|
{
|
|
$lookup:
|
|
{
|
|
from: "users",
|
|
localField: "user",
|
|
foreignField: "_id",
|
|
as: "user_detail"
|
|
}
|
|
},
|
|
{ $unwind: { path: "$user_detail" } },
|
|
{ $project:
|
|
{
|
|
name: 1,
|
|
contact: 1,
|
|
phone: 1,
|
|
email: 1,
|
|
username: "$user_detail.username",
|
|
password: "$user_detail.password",
|
|
}
|
|
}
|
|
]);
|
|
|
|
///////////////////////////////////////////////////////
|
|
var sprayIds = [
|
|
"5c646e5d1e53e006dd0b76c5",
|
|
"5c646e5d1e53e006dd0b76a7",
|
|
"5c646e5d1e53e006dd0b76a6",
|
|
"5c646e5d1e53e006dd0b76a5",
|
|
"5c646e5d1e53e006dd0b76a4",
|
|
"5c646e5d1e53e006dd0b76a3",
|
|
"5c646e5d1e53e006dd0b76a2",
|
|
"5c646e5d1e53e006dd0b76a1"
|
|
];
|
|
sprayIds = sprayIds.map(i => ObjectId(i));
|
|
var pipeline = [
|
|
{
|
|
"$match": {
|
|
_id: 64
|
|
}
|
|
},
|
|
{
|
|
"$unwind": "$sprayAreas"
|
|
},
|
|
{
|
|
"$match": {
|
|
"sprayAreas._id": { $in: sprayIds}
|
|
}
|
|
},
|
|
{
|
|
"$group": {
|
|
"_id": "$_id",
|
|
"sprayAreas": { $push: "$sprayAreas" }
|
|
}
|
|
}
|
|
];
|
|
db.jobs.aggregate(pipeline);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|