Где пункт в Python API Firestore не работает для формата отметок даты - PullRequest
0 голосов
/ 08 октября 2019

Я работаю с облачным firestore с API в Python. Мне нужно сделать предложение where для извлечения некоторых пользователей, которые удовлетворяют условию, что дата обработки вашего аккаунта меньше, чем дата, которая была обновлена.

Проблема с этими датами заключается в том, что они имеют тиковый формат:

'last_processed': 637053568312425740,
'last_updated': 637053568312425740,

Кажется, что они являются целыми числами, поэтому я должен быть в состоянии сделать простое сравнение и принять только значения, которые соответствуют этому условию, но это не работает, это то, что я сделал такfar:

persons = 
db.collection(u'collections').where(u'last_processed', u'<', 
u'last_updated')
person_docs = persons.stream()
for person_doc in person_docs:
    print(u'{} => {}'.format(person_doc.id, person_doc.to_dict()))

Я могу извлечь все содержимое этой таблицы без этого предложения where, а также, если я применю различные предложения where для других переменных в таблице, в которой он работает, так что кто-то может объяснить мне, почемуне работает?

1 Ответ

1 голос
/ 08 октября 2019

Этот тип звонка нельзя сделать с помощью Firestore. Это больше похоже на оператор SQL, который запускает какую-то операцию перед возвратом данных.

С типом операции, которую вы пытаетесь сделать здесь, вам лучше делать это на стороне клиента или хранить индикатор сданные при первоначальном добавлении.

Я бы добавил логический маркер, который вы можете вызвать (например, все из blanklabelcom_persons, где shouldBeProcessed == true, и обновите его до false после его обновления и т. д.

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