原始诉求:
将 “_.eq()” 的 Command 相关的API调用(我预期的 操作运算符)作为value,与其对应的key作为对象,通过event对象的参数,传入到相应的云函数中,最终预期能在云函数中的event对象中拿到对应的参数值,再进行 lookup 的联表查询。
在此过程中,似乎 - key : “_.eq()” 的 Command 相关的API调用 的键值对对象,无法预期传入到云函数中,而 “$.eq()” 则能够顺利正确传递。
问题描述:
不知是否我的使用方式不当,亦或是 “_.eq()” 的 Command 相关的API使用方式不支持其作为对象参数,在云函数的调用中进行引用?
测试过程:
Command.eq:
//Test for "match" $ command
testMatchCommand() {
wx.cloud.callFunction({
name : "testCommand",
data : {
matchCondition : {
identityID : _.eq(1),
//identityID : $.eq(1),
}
}
})
.then(res => {
console.log("==========testCommand : 返回结果原始数据:" + res.result);
});
},
现象描述:如我的测试表结果来看,键值对对象作为match的条件,并未起到过滤作用:identity : _.eq(1),并且 event.matchCondition 参数为空
AggregatedCommand.eq:
//Test for "match" $ command
testMatchCommand() {
wx.cloud.callFunction({
name : "testCommand",
data : {
matchCondition : {
//identityID : _.eq(1),
identityID : $.eq(1),
}
// fieldName : 'identityID',
// value : 1
}
})
.then(res => {
console.log("==========testCommand : 返回结果原始数据:" + res.result);
});
},
现象描述:基于同样的表,字段,查询条件,相比于 “_.eq()” API的调用,"$.eq()" 的 AggregatedCommand.eq API可以进行传递,但由于 match API 的使用限制:注意 match
阶段和其他聚合阶段不同,不可使用聚合操作符,只能使用查询操作符
其亦无法对联表查询的结果进行过滤,甚至无法得到预期包含数据的结果集
相关API