Я столкнулся с проблемой при поиске в запросе 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"
}