我需要写一堆查询。
每个查询都会分享一些private boolean found = false;
private boolean modifiedInorderTraversal(Node newRoot, Node target){
if(newRoot.leftPointer != null){
modifiedInorderTraversal(newRoot.leftPointer, target);
}
if(newRoot == target){
found = true;
}
if(newRoot.rightPointer != null){
modifiedInorderTraversal(newRoot.rightPointer, target);
}
return found;
}
或common data structure
我如何加载function
并使用common.js
中的function
和constants
(我在咖啡中写下了actullay然后将其转换为app.js
)
我收到js
E QUERY ReferenceError:leading_zero未定义
mongo localhost:27017/test app.js
USERS = [
'477 ',
'4770 '
]
leading_zero = function(num, size) {
var s;
if (size == null) {
size = 2;
}
s = num + '';
while (s.length < size) {
s = '0' + s;
}
return s;
};
答案 0 :(得分:2)
函数leading_zero需要在您的数据库上。请参阅http://docs.mongodb.org/manual/tutorial/store-javascript-function-on-server/。
首先在shell上运行:
db.system.js.save(
{
_id: "leading_zero",
value : function(num, size) {
var s;
if (size == null) {
size = 2;
}
s = num + '';
while (s.length < size) {
s = '0' + s;
}
return s;
}
}
)
这将把db上的函数保存为系统函数。
运行db.loadServerScripts();在shell上加载所有脚本。
然后你可以在查询的任何地方调用它。
print(leading_zero(3)) // directly on shell
db.myCollection.find( { $where: "this.credits == myfunc(this.xValue)" } ); // on query