41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
/**
|
|
* Tests to verify that $graphLookup can use the variables defined in an outer scope.
|
|
*/
|
|
(function() {
|
|
"use strict";
|
|
|
|
let local = db.graph_lookup_var_local;
|
|
let foreign = db.graph_lookup_var_foreign;
|
|
local.drop();
|
|
foreign.drop();
|
|
|
|
foreign.insert({from: "b", to: "a", _id: 0});
|
|
local.insert({});
|
|
|
|
const basicGraphLookup = {
|
|
$graphLookup: {
|
|
from: "graph_lookup_var_foreign",
|
|
startWith: "$$var1",
|
|
connectFromField: "from",
|
|
connectToField: "to",
|
|
as: "resultsFromGraphLookup"
|
|
}
|
|
};
|
|
|
|
const lookup = {
|
|
$lookup: {
|
|
from: "graph_lookup_var_local",
|
|
let : {var1: "a"},
|
|
pipeline: [basicGraphLookup],
|
|
as: "resultsFromLookup"
|
|
}
|
|
};
|
|
|
|
// Verify that $graphLookup can use the variable 'var1' which is defined in parent $lookup.
|
|
let res = local.aggregate([lookup]).toArray();
|
|
assert.eq(res.length, 1);
|
|
assert.eq(res[0].resultsFromLookup.length, 1);
|
|
assert.eq(res[0].resultsFromLookup[0].resultsFromGraphLookup.length, 1);
|
|
assert.eq(res[0].resultsFromLookup[0].resultsFromGraphLookup[0], {_id: 0, from: "b", to: "a"});
|
|
})();
|