![](/img/trans.png)
[英]Which “kind” of JavaScript is available inside a map and/or reduce function in MongoDB?
[英]Function is not recognized in map reduce command, mongoDB (javascript)
我在 MongoDB 中嘗試做的 map 減少有一些問題。 我定義的 function 在減少 function 中似乎不可見。 這是我的代碼:
function getName(user_id){
var users = db.users.aggregate({$project:{"_id":"$_id", "name":"$name"}});
users.forEach((it) => {if (user_id == it._id) return it.name;});
return "user not found";
}
var mapFunc = function(){ emit(this.user_id, this.book_id) };
var reduceFunc = function(key, values){return getName(key);};
db.booksToRecover.mapReduce(mapFunc, reduceFunc, {out:'users_to_recover_books_from'});
function 是在本地運行的 javascript 實例中定義的,而不是在服務器中。
為了使 function 可以從服務器調用,您需要在此處預定義它或在 reduce function 中包含定義。
但不要那樣做。
reduce function 不應該訪問數據庫,即使執行讀取操作。
改為使用帶有$lookup階段的聚合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.