【问题标题】:PYTHON - PYMONGO - Invalid Syntax with $orPYTHON - PYMONGO - 带有 $or 的无效语法
【发布时间】:2018-08-18 15:22:57
【问题描述】:

在我添加 $or 选项之前,我似乎无法让它与 pymongo 一起工作。我是否错过了一些明显的东西

dataout = releasescollection.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}).sort('id', pymongo.ASCENDING).limit(25)

Traceback (most recent call last): File "<stdin>", line 1, in <module> File "discogs.py", line 51 dataout = releasescollection.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}) ^ SyntaxError: invalid syntax

直接在 mongo 中运行以下代码,但我在切换到 python 时遗漏了一些东西

db.releases.find( { $or: [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}).sort({'id':1}).limit(25)

【问题讨论】:

    标签: python python-2.7 mongodb-query pymongo


    【解决方案1】:

    我应该早点意识到这一点,一旦我添加了 $ 或者它需要用引号引起来。所以这行得通:

    dataout = releasescollection.find( { "$or": [{"l_title":{"$regex": "i walk the line", "$options": "-i"}}, {"artistJoins.0.artist_name":{"$regex": "Johnny Cash", "$options": "-i"}}]}).sort('id', pymongo.ASCENDING).limit(25)

    【讨论】:

    • 您找到了解决方案,但对于那些将在未来探索此问题的人,引号必须包含$or表达式,如documents 所示。
    猜你喜欢
    • 2011-02-14
    • 2021-09-07
    • 2018-12-11
    • 2015-02-07
    • 2016-07-24
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    相关资源
    最近更新 更多