[英]Execute Postgresql function that accepts an array of parameters using pg-promise
[英]Is it possible to execute a function in Mongo that accepts any parameters?
我正在寻找编写一个函数来对Mongo中的集合进行自定义查询。 问题是,我想重用该功能。 我的想法是这样的(显然是人为的):
var awesome = function(count) {
return function() {
return this.size == parseInt(count);
};
}
在Mongo控制台中执行了该功能,然后继续运行此功能:
db.collection.find(awesome(5));
但是,我收到此错误:
error: {
"$err" : "error on invocation of $where function:
JS Error: ReferenceError: count is not defined nofile_b:1"
}
因此,Mongo似乎并没有尊重范围,但我真的不确定为什么。 任何见识将不胜感激。
要更深入地了解我想做的事情:
文档集合具有经度/经度值,我想在凹面或凸面多边形内找到所有文档。 我已经编写了函数,但是理想情况下能够重用该函数,因此我想将构成多边形的点数组传递给我在Mongo端执行的函数。 我看过Mongo的地理空间查询,目前它支持圆框查询和框查询-我需要更复杂的东西。
如果要在查询中使用该功能,则需要将该功能保存到数据库中。 做:
db.system.js.save({_id : "awesome", value :
... function(count) {
... return this.size==count;
... }})
db.collection.find({"$where" : "awesome(5)"})
外壳不是数据库本身,因此您不能在外壳中定义某些东西并在数据库中使用它,而不仅仅是在Python中定义变量并希望数据库知道它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.