155 lines
3.2 KiB
JavaScript
155 lines
3.2 KiB
JavaScript
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",
|
|
"excludedAreas": { $first: "$excludedAreas" },
|
|
"swathWidth": { $first: "$swathWidth" },
|
|
"measureUnit": { $first: "$measureUnit" },
|
|
"sprayAreas": { $push: "$sprayAreas" },
|
|
}
|
|
},
|
|
];
|
|
db.jobs.aggregate(pipeline);
|
|
|
|
// Find assigned vehicles with userid, username
|
|
db.job_assigns.aggregate([
|
|
// {
|
|
// $match: {
|
|
// job: ??
|
|
// },
|
|
// },
|
|
{
|
|
$lookup:
|
|
{
|
|
from: "users",
|
|
localField: "user",
|
|
foreignField: "_id",
|
|
as: "assigned_users"
|
|
}
|
|
},
|
|
{
|
|
$unwind: "$assigned_users"
|
|
},
|
|
{
|
|
$lookup: {
|
|
from: "vehicles",
|
|
localField: "user",
|
|
foreignField: "user",
|
|
as: "assigned_vehicles"
|
|
}
|
|
},
|
|
{
|
|
$unwind: "$assigned_vehicles"
|
|
},
|
|
{
|
|
"$group": {
|
|
"_id": "$_id",
|
|
"uid": { $first: "$user" },
|
|
"name": { $first: "$assigned_vehicles.name" },
|
|
"username": { $first: "$assigned_users.username" },
|
|
}
|
|
},
|
|
])
|
|
|
|
// Find available vehicles with userid, username
|
|
db.vehicles.aggregate([
|
|
{
|
|
$match: { user: { $ne: null } }
|
|
},
|
|
{
|
|
$lookup:
|
|
{
|
|
from: "users",
|
|
localField: "user",
|
|
foreignField: "_id",
|
|
as: "vehicle_users"
|
|
}
|
|
},
|
|
{
|
|
$unwind: "$vehicle_users"
|
|
},
|
|
{
|
|
"$group": {
|
|
"_id": "$_id",
|
|
"uid": { $first: "$user" },
|
|
"name": { $first: "$name" },
|
|
"username": { $first: "$vehicle_users.username" },
|
|
}
|
|
},
|
|
])
|
|
|
|
|
|
// Select all pilots and vehicles account along with its parents
|
|
db.users.aggregate(
|
|
[
|
|
{
|
|
$match: { firstName: '', $or: [ { type: 5 }, { type: 9 }] }
|
|
},
|
|
{
|
|
$lookup: {
|
|
from: "customers",
|
|
localField: "parent",
|
|
foreignField: "user",
|
|
as: "parent_users"
|
|
}
|
|
},
|
|
{
|
|
$unwind: "$parent_users"
|
|
},
|
|
{
|
|
$lookup: {
|
|
from: "users",
|
|
localField: "parent_users.user",
|
|
foreignField: "_id",
|
|
as: "parent_users1"
|
|
}
|
|
},
|
|
{
|
|
$unwind: "$parent_users1"
|
|
},
|
|
{
|
|
$group: {
|
|
"_id": "$parent",
|
|
"name": { $first: "$parent_users.name"},
|
|
"users": { $push: {uid: "$_id", username: "$username", type: "$type", password: "$password" } },
|
|
"username": { $first: "$parent_users1.username"},
|
|
"password": { $first: "$parent_users1.password"},
|
|
}
|
|
},
|
|
{
|
|
$project: { "_id": false }
|
|
}
|
|
])
|
|
|
|
// Find all "entites" accounts
|
|
db.users.find({
|
|
$and:[ { firstName: ''},
|
|
// { parent : { $nin: [ObjectId("5b0e4d6cd36bea4bbbf1f690"), ObjectId("5c6ff7d44e9ed904837b393a")] }},
|
|
{ $or: [ { type: 5 }, { type: 9 }]}
|
|
]
|
|
}, { _id: false });
|