Выполнить пользовательскую функцию в db.runCommand в MongoDB - PullRequest
0 голосов
/ 04 апреля 2019

Я хочу вызвать пользовательскую функцию, которая создается в db.runCommand ().

У меня есть создано ниже функция :

db.system.js.save(
{
     _id : "myAddFunction" ,
     value : function (x, y){ return x + y; }
   }
);

Теперь я хочу вызвать эту функцию в db.runCommand (): я попытался, как показано ниже:

db.runCommand({
aggregate: "mycollection",
pipeline: [
    {
        $project: {
            "X": 1,
            "Y": 1,
            //"SUM1" : { $sum: ["$X", "$Y"] },
            //"SUM2" : { "$myAddFunction": ["$X", "$Y"]},
            "SUM3": {
                "%function": {
                    "name": "myAddFunction",
                    "arguments": [
                        "$X",
                        "$Y"
                    ]
                }
            }
        }
    },
],
cursor: {}
 })

Я могу получить выходные данные ниже runCommand, но как получить проекцию из myCollection?

db.runCommand( {
  eval:  'function(u1,u2) {return myAddFunction(u1,u2)};',
  args: [ 1,2 ],
  nolock: true
}
);
...