我正在向使用 documentdb 作为数据库的 nodejs 服务器发送一个请求。
Ex./student/:classId?studentId=1234&name=piyush&age=14&gender=male&class=12
此请求 url 是固定的,Ex./student/:classId
但剩余部分是动态的,可能会出现,也可能不会出现。
现在,如果我得到查询字符串参数,那么我想在我的 documentdb 查询中应用过滤器。
var query = {
query: 'SELECT * FROM root r WHERE r.classId=@classIdAND r.collectionName="students"',
parameters: [{
name: '@classId',
value: classId
}]
};
docDbClient.queryDocuments(collection._self, query).toArray(function (err, results) {
if (err) {
return callback(err);
}
callback(null, results[0]);
});
所以这里的 classId 肯定会出现,但剩余的参数不是固定的,所以我想编写可以像这样过滤的那种类型的查询:假设我只传递年龄,那么它应该只按年龄过滤集合,假设我传递所有其他参数之类的。studentId, name, age, gender 那么它应该使用所有参数过滤数据,这个参数没有定义它们是动态的,所以我在编写查询时不知道这些参数的名称,所以我想根据即将到来的参数应用过滤器,
那么我该如何编写这个查询呢?