agmission/Others/scripts/mongo-scripts/aggregation.js

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);