问题1:我想在DocumentDB上运行一个带有用户定义函数的查询
var udf = function(users, userid) {
var s, _i, _len;
for (_i = 0, _len = users.length; _i < _len; _i++) {
s = users[_i];
if (s.userid === userid) {
return true;
}
}
return false;
};
conversationsQuerySpec = {
query: 'SELECT * FROM root r WHERE @fn(r.users, @userid) AND r.id=@id',
parameters: [{
name: '@fn',
value: udf
}, {
name: '@userid',
value: userid
}, {
name: '@id',
value: id
}]
};
但问题是这个查询没有运行抛出错误。
问题2:我在documentDB中有一个对象,其数组如下:
var student = {
name: 'piyush',
classes: [{
level: '1st',
medium: 'spanish'
},{
level: '2nd',
medium: 'german'
}]
}
我想运行查询,其中medium = german,我不想传递level = 2nd,我该如何运行此查询?
答案 0 :(得分:1)
Q1。您必须单独上载UDF而不是作为参数。只需在运行该查询之前使用适当的SDK调用将其挂起。
SELECT * FROM root r WHERE udf.myUserDefinedFunction(r.users, @userid) AND r.id=@id
Q2。这应该工作(未经测试):
SELECT VALUE student FROM student JOIN c in student.classes WHERE c.medium = "german"