"not in" 集的 taffyDB 查询
taffyDB query for "not in" set
使用 TaffyDB(),我想在从列表中排除值的同时查询数据。
我正在这样尝试:
var ret=clientDB( {"xuserID":{ "!is":["STS","EIAI"] } } ).get();
使用它,它正确地省略了第一个值(在本例中为 STS),但没有任何后续值。
我不知道有什么方法可以做到这一点。
虽然从技术上讲这不是您问题的答案,但一种可能的替代方法是 return 任何不是 "STS" 的东西 AND
不是 "EIAI".
var ret=clientDB
(
{xuserID:{"!is":"STS"}},
{xuserID:{"!is":"EIAI"}}
).get();
可能值得注意的是,根据您需要的数据表示方式,TAFFYDB 的 get()
方法 return 将找到的记录作为一个数组,因此您可以只搜索您需要的记录知道您不想要然后像这样将两个数组相互过滤。
var entire_as_array = clientDB().get();
var unwanted_portion_as_array = clientDB({xuserID:["STS","EIAI"]}).get();
var concat_array = entire_as_array.concat(unwanted_portion_as_array);
var difference = concat_array.filter(function(i){
return entire_as_array.indexOf(i) < 0 || unwanted_portion_as_array.indexOf(i) < 0;
});
使用 TaffyDB(),我想在从列表中排除值的同时查询数据。
我正在这样尝试:
var ret=clientDB( {"xuserID":{ "!is":["STS","EIAI"] } } ).get();
使用它,它正确地省略了第一个值(在本例中为 STS),但没有任何后续值。
我不知道有什么方法可以做到这一点。
虽然从技术上讲这不是您问题的答案,但一种可能的替代方法是 return 任何不是 "STS" 的东西 AND
不是 "EIAI".
var ret=clientDB
(
{xuserID:{"!is":"STS"}},
{xuserID:{"!is":"EIAI"}}
).get();
可能值得注意的是,根据您需要的数据表示方式,TAFFYDB 的 get()
方法 return 将找到的记录作为一个数组,因此您可以只搜索您需要的记录知道您不想要然后像这样将两个数组相互过滤。
var entire_as_array = clientDB().get();
var unwanted_portion_as_array = clientDB({xuserID:["STS","EIAI"]}).get();
var concat_array = entire_as_array.concat(unwanted_portion_as_array);
var difference = concat_array.filter(function(i){
return entire_as_array.indexOf(i) < 0 || unwanted_portion_as_array.indexOf(i) < 0;
});