Я довольно новичок в использовании запросов cts, поэтому мне нужна помощь с чем-то, что, я думаю, довольно просто. Мне нужно выбрать документ, который находится в CollectionA, но не в CollectionB. Как мне изменить приведенный ниже запрос, чтобы убедиться, что документы, находящиеся в CollectionB, не выбраны:
cts.andQuery([cts.fieldRangeQuery('datahubCreatedOn', '>=', xs.dateTime(fn.currentDateTime()).subtract(xs.duration('PT120M'))), cts.collectionQuery(["CollectionA"])])
Я бы использовал cts.andNotQuery()
cts.andNotQuery(
cts.andQuery([
cts.fieldRangeQuery('datahubCreatedOn', '>=', xs.dateTime(fn.currentDateTime()).subtract(xs.duration('PT120M'))),
cts.collectionQuery(["CollectionA"])
]),
cts.collectionQuery(["CollectionB"])
)
Обратите внимание, что есть также cts.notQuery()
, который вы также можете просто обернуть cts.collectionQuery()
для CollectionB
и добавить в массив для cts.andQuery()
, но если у вас есть положительные и отрицательные критерии, cts.andNotQuery()
— лучший вариант.
Хорошо. Я знал, что это будет легко. Спасибо Мэдс.