Objetivo: Imaginemos hipoteticamente que temos duas coleções: uma de Membros da Empresa(MembrosDaEmpresa) e outra de Membros(PrivateMembersData), cujo o objetivo será mostrar apenas os Membros(PrivateMembersData) que ainda não existam na coleção de Membros da Empresa(MembrosDaEmpresa).
Desta forma uma possível saída seria implementarmos algo assim:
let parametro = wixWindow.lightbox.getContext()
let idEmpresa = parametro.idregistro // Obtenho o ID da empresa
let varMembrosDaEmpresa = [ ]; // Crio um array
$w("#repeaterMembrosDaEmpresa").forEachItem(($item, itemData, index) => {
varMembrosDaEmpresa.push($item("#imgMembroEmpresa").alt); // Atribuo o ID dos membros da empresa ao array(varMembrosDaEmpresa)
});
//Defino um novo filtro let newFilter = wixData.filter(); newFilter = newFilter.ne("_id", varMembrosDaEmpresa); $w("#datasetMembros").setFilter(newFilter) //atribuo o filtro ao DataSet $w("#datasetMembros").refresh() //atualizo o filtro do DataSet console.log(newFilter) console.log(varMembrosDaEmpresa)
Se usarmos: newFilter = newFilter.ne("_id", varMembrosDaEmpresa);
O seguinte erro é constatado:

Já se usarmos o mesmo filtro apenas substituindo ne por hasSome ficando desta forma vemos que o filtro é executado sem erro.
Se usarmos assim: newFilter = newFilter.hasSome("_id", varMembrosDaEmpresa);
Conclusão: porque o filtro quando usamos ne(não é igual), apresenta erro? Alguém poderia esclarecer melhor isto, creio que seja uma duvida de vários desenvolvedores quando se deparam com uma Query a qual precisam usar a função ne() do tipo não é igual.
@Matheus Alexandre
Obrigado pela dica Matheus, estava mesmo tentando descobrir como deixar formatado, com esta dica as próximas vão formatadas.
Aproveitando, vi que alguns moderadores conseguem que um usuário consiga tirar uma copia de um site disponibilizado pelo mesmo apenas clicando em um link. Nós conseguimos fazer isto também?
Resolvendo o problema agora:
Fatos:
A função ne( ) citada aqui não aceita mais de um valor. Logo esqueça se estiver precisando passar mais de um valor.
Logo você vai precisar usar algo como isto em vermelho abaixo para contornar a limitação de um valor apenas, desta forma você consegue passar mais de um valor:
wixData.query("Members/PrivateMembersData") .not(wixData.query("Members/PrivateMembersData") .hasSome("_id", varMembrosDaEmpresa) ) .find() .then((results) => { if (results.items.length > 0) { let items = results.items; let firstItem = items[0]; let totalCount = results.totalCount; let pageSize = results.pageSize; let currentPage = results.currentPage; let totalPages = results.totalPages; let hasNext = results.hasNext(); let hasPrev = results.hasPrev(); let length = results.length; let query = results.query; console.log(firstItem) // SeuComponente = results.items; // atribuindo o resultado da pesquisa a algum componente
// Seu codigo aqui caso a consulta retorne algum resultado
} else { console.log("Não foram encontrados registros")
// Seu outro codigo caso a consulta não retorne nada } }) .catch((error) => { let errorMsg = error.message; let code = error.code; console.log("OCORREU um erro " + code + " - " + errorMsg) });
Espero ter lhe ajudado e poupado seu tempo, se gostou deixe um link!