我正在尝试在 Azure 移动服务上执行“doesNotContainAllObjectsInArray”类型操作。例如,假设我有一个名为 Number
的表,该表中包含具有以下“数字”值的记录:11111、22222、33333、44444。
我希望能够编写一个查询,允许我传递一组我特别不想要的数字,例如:[11111,44444]
应该让我得到[22222, 33333]
。
我尝试在 where
运算符中使用 JavaScript,但收到一条错误消息,指出不支持该表达式。这是我尝试过的:
var numberTable = tables.getTable('Number');
var ignoreNumbers = ['11111', '44444'];
numberTable.where(function(numbers) {
return (numbers.indexOf(this.number) > -1);
}, ignoreNumbers).read({
success: function(foundNumbers) {
console.log('Found ' + foundNumbers.length + ' numbers!');
},
error: function(error) {
console.error('Error with query! ' + error);
}
});
注意:我无法对ignoreNumbers 值进行硬编码,因为该数组是从先前的查询生成的。
任何人都可以建议我如何执行这样的查询吗?我需要构建 SQL 语句并使用 mssql
执行它吗? (...这对于表存储来说是可能的吗?)
最佳答案
您正在描述 Table Queries 中不支持的 SQL except 运算符。 。我发现执行此操作的唯一方法是将表加载到内存中(由于大小通常不可行),然后使用 LINQ 执行 except 查询。
关于javascript - 如何在 Azure 表存储中查找与值数组不匹配的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560817/