Как удалить документ, найденный поиском в FaunaDB? - PullRequest
1 голос
/ 10 марта 2020

Я могу получить искомый документ следующим образом golang код:

ret, err := client.Query(f.Get(f.MatchTerm(f.Index("label_search_by_externalID"), externalID)))

Затем я попытался удалить найденный документ следующим образом:

ret, err := client.Query(f.Delete(f.MatchTerm(f.Index("label_search_by_externalID"), externalID)))

Но , в этом коде возникает ошибка:

Response error 400. Errors: [delete](invalid argument): Ref expected, Set provided.

Меня смущает документ API, оба Get и Удалить запрос Ref для документа в качестве параметра, и MatchTerm возвращает Set, а не Ref. Тогда у меня есть 2 вопроса.

  1. Как я могу получить документ Ref, который является результатом поиска? Есть ли способ получить ссылку на документ из результата поиска с помощью индекса, например, RefCollection для коллекции, например, как RefIndex , как указано ниже?
ret, err := client.Query(f.Delete(f.RefIndex(f.Index("label_search_by_externalID"), externalID)))
Почему мой код для получения документа с результатами поиска работает хорошо? Есть ли более хорошая кодировка для получения документа с результатами поиска?

Спасибо за ваше предложение!

1 Ответ

3 голосов
/ 10 марта 2020

Get вернет только 1 результат. Если у вас есть несколько значений, возвращенных из этого поиска по индексу, у вас будут проблемы. Я бы предложил функцию Paginate (). Это вернет набор результатов, которые вы затем сможете отобразить и выполнить другие функции, такие как get () или delete (). Я настоятельно рекомендую вам взглянуть на следующий учебник (https://docs.fauna.com/fauna/current/tutorials/indexes/pagination).

Это псевдокод для удаления страницы найденных документов. Вы можете настроить размер страницы вверх или вниз:

Карта (Paginate (Match (Index ("label_search_by_externalID"), true)), Lambda ("X", Delete (Var ("X"))) )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...