Порядок словаря, формируемого в $ project агрегатного конвейера, изменяется при извлечении в pymongo - PullRequest
0 голосов
/ 18 июня 2019

Я столкнулся с проблемой при поиске в запросе MongoDB, который хранится и вызывается с использованием pymongo3.3. В поисковой коллекции есть столбец ID, который является словарем. Я создаю этот столбец LookupID в проекте, но проект меняет порядок словаря, который в свою очередь не может выполнить поиск. , MongoDB версии 3.2 и Python2.7.

Я попытался использовать параметрDefaultSort: false, как указано [здесь] https://github.com/strongloop/loopback-connector-mongodb/pull/177,, а также попытался вставить запись с помощью упорядоченного словаря через Pymongo, но он не работал

Ниже приведен сценарий, объясненный на примере:

    Collection1 (collection where query is stored)
    {
        "_id":"test",
        "Query": [{
                "$project": {
            "col1": 1,
            "ID": {
                "first": 1,
                "second": 1,
                "third": 1
            }
        }
    },
    {
        '$lookup': {
            'foreignField': 'ID',
            'as': 'LookupOutput',
            'from': 'CollectionLKP',
            'localField': 'ID'
        }
    }
]

}

Вызов запроса в Python2.7 с использованием Pymongo 3.3

    a = db.Collection1.find_one({"_id":"test"},{"_id":0})
    QueryFilter = a["Query"]

    db.Collection2.aggregate(QueryFilter)

Но когда я получаю QueryFilter, последовательность столбцов идентификаторов изменяется, что приводит к сбою в поиске. Пожалуйста, помогите мне с возможным решением.

    Sample Collection2: 
    {
        "col1": "India",
        "first": "41",
        "second": "secValue",
        "third": "thirdValue"
    }
    Sample CollectionLKP: 
    {
        "_id": "Val1",
        "ID": {
            "first": "41",
            "second": "secValue",
            "third": "thirdValue"
        },
        "colTest": "TestValue"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...