Используйте массив значений для запроса базы данных mongodb, используя flask mongoengine / pymongo - PullRequest
0 голосов
/ 05 мая 2020

У меня есть коллекция, в которой есть несколько полей, по которым можно запросить возврат документа. Я могу легко использовать одно поле за раз для запроса базы данных, можно ли использовать несколько значений поиска из комбинации полей для поиска документов? Используя поле поиска, пользователь вводит несколько значений.

Мой подход состоит в том, чтобы добавить значения в массив и отправить их в API, который будет использовать значения для запроса базы данных. Вот пример кода:

Модель коллекции в db

class Reports(db.Document):
    id_no = db.StringField()
    fullname = db.StringField()
    position = db.StringField()
    phonenumber = db.ListField(db.StringField())
    check_in = db.DateTimeField(default=datetime.utcnow)
    meta = {'collection': 'Reports'}

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

{
    "id_no": "2", 
    "fullname":"John Doe",
    "check_in": "Thu Apr 16 2020",
    "position": "Clerk",
    "phonenumber" = ["12345", "54321"]

}

Код для обработки будет выглядеть примерно так:

    def get(self):
        try:
            body = request.get_json() #get the input

            search_fields = Reports.objects.filter(body).to_json() #This is where I will execute the query but I'm not sure how to approach this properly.
            return Response(search_fields, mimetype="application/json", status=200)

Используя ввод, я хочу найти в базе данных документы, которые соответствуют. Это лучший подход для поиска нескольких полей с несколькими значениями в mongodb с использованием flask -mongoengine или pymon go для запроса? Ценю любую помощь.

...