agmission/Development/server/db-scripts.js

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