регулярное выражение работает в MongoDB, но не работает в коде PyMon go - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть этот запрос MongoDB -

db.doc_collection.update(
   { "document": ObjectId("5e104b30a23cc50d0e52d54a"),
            "result": {'$elemMatch': {
                "class_label": {"$regex": /^section_prefix\|\|\|.*\|\|sub_section_suffix$/}, "group_label": {'$gt': 1}}}
            },
   {'$inc': {"result.$[element].group_label": -1}},
   {
        upsert: false,           
        arrayFilters: [
            { "element.class_label": {"$regex": /^section_prefix\|\|\|.*\|\|sub_section_suffix$/}, "element.group_label": {'$gt': 1}}
            ]
    }
   )

Этот запрос работает нормально, когда я запускаю его в MongoDB. Но когда я пытаюсь написать тот же запрос в PyMon go - Django Codebase, как показано ниже -

class_label_regex = "/^" + section_data + "/|/|/|.*/|/|" + sub_section_data + "$/"

UpdateOne({
        "document": ObjectId(document_data),
        "result": {'$elemMatch': {
            "class_label": {"$regex": class_label_regex}, "group_label": group_label_data}}
        },
        {'$pull': {"predictions": {
            "class_label": {"$regex": class_label_regex}, "group_label": group_label_data}}}
)

Это не работает. Это не бросает никакой ошибки. Когда я запустил этот код, я распечатал этот фрагмент кода -

[UpdateOne({
    'document': ObjectId('5e104b30a23cc50d0e52d549'), 
    'result': {'$elemMatch':{'class_label': {'$regex': '/^section_prefix/|/|/|.*/|/|sub_section_suffix$/'}, 
                                'group_label': 1.0}}}, 
    {'$pull': {'result': {'class_label': {'$regex': '/^section_prefix/|/|/|.*/|/|sub_section_suffix$/'}, 
                                'group_label': 1.0}}}, False)]

Может кто-нибудь указать, что я здесь не так делаю? Что-то не так с определением регулярных выражений.

Заранее спасибо !!

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