Boa tarde pessoal,
tenho uma tabela que possui o campo multireferencia e estou tentando setar um filtro assim que ela é carregada em minha página. Quando eu ultilizava apenas como referência a mesma funcionava normalmente com com o seguinte código:
$w("#datasetListSetores").onReady(async () => {
await wixData.queryReferenced("Setor", user._id, "usuarios")
.then((ref) => {
ref.items.forEach((value) =>{
arrayDeSetores.push({ "id": value._id, "title": value.title})
})
})
$w("#listaDeSetores").forEachItem(($w, itemData, i) =>{
$w("#txtNomeSetor").text = itemData.title
})
$w("#listaDeSetores").show()
})
// Retorno de erro
An error occurred in one of onReady callbacks Error: WDE0073: Item [9823f863-7989-4e27-92d3-3626340665f7] does not exist in collection [Setor].
WDE0073: Item [9823f863-7989-4e27-92d3-3626340665f7] does not exist in collection [Setor].
Porém não está funcionando, é informado que o registro não é encontrado na base de dados porém ele está lá. poderiam me ajudar nessa questão ?
Verifique se os parâmetros que você preencheu estão corretos e que a função utilizada realmente atende o que você está procurando. A função wixData.queryReferenced( ) obtém todos os itens referenciados na propriedade do item especificado. Se você tem, por exemplo, um banco de dados "Usuários", e nesse banco de dados existe um campo chamado "Arquivos" que armazena, através de múltiplas referencias, os arquivos daquele usuário, você pode usar o wixData.queryReferenced( ) para ver todos os arquivos de um usuário especifico, informando nos parâmetros da função o id desse usuário. Para isso, ela exige 3 parâmetros obrigatórios conforme indica a documentação:
wixData.queryReferenced(collectionId, item, propertyName)
O primeiro parâmetro é o id da coleção na qual você está fazendo a busca das referências.
O segundo é o id do item no qual vocês está buscando as referências.
O terceiro é o nome do campo da sua coleção no qual você está buscando as referências.
No exemplo que você passou, você está realizando uma busca no banco de dados chamado "Setor", buscando pelo item de ID 9823f863-7989-4e27-92d3-3626340665f7 (user._id) e vendo, nesse item, quais são as referências que estão no campo chamado "usuarios"
Certifique-se de que é isso mesmo que deseja fazer. Existe mesmo um item no campo de dados "Setor" que tenha o mesmo id do usuário? (Acredito que aqui esteja o erro).
Caso seu objetivo seja filtrar os setores de um usuário especifico, acredito que utilizar dessa forma seja mais efetivo:
const queryResult = await wixData.query('Setor').hasSome('usuario', user._id).find() const setoresDoUsuario = queryResult.items //Armazena os setores filtrados
Caso precise de mais ajuda, tente explicar um pouco mais como funciona esse filtro e como você quer utilizar ele na página, assim podemos sugerir alterações no seu código para cumprir a função que você precisa.
Espero ter conseguido ajudar
Fico a disposição em caso de dúvidas 😀