Если вы хотите оставить его как запрос поиска, вам нужно использовать предложение , где и дать ему функцию, однако я не уверен, насколько эффективен этот подход.
Другой альтернативой является использование агрегата с objectToArray , а затем перебор всех ключей.это должно выглядеть так:
db.utestmongo.aggregate([
{
$addFields: { array: { $objectToArray: "$doc" }}
},
{
$match: {'array.v.title': "awesome"}
}])
решение pymongo
import pymongo
db_cnxn = pymongo.MongoClient()
db = db_cnxn['db']
pipeline = [
{"$addFields":{"array": { "$objectToArray": "$doc" }}},
{"$match": {'array.v.title': "awesome"}}
]
list(db['utestmongo'].aggregate(pipeline))