【问题标题】:how i can make a mongodb query (or find()) with a variable using python?我如何使用python使用变量进行mongodb查询(或find())?
【发布时间】:2018-04-11 04:39:30
【问题描述】:

我需要从MySQL to MongoDB 的数据库中传输数据。 我有一个带有一些数据的 Mysql 查询:

SELECT data FROM table where data BETWEEN r1 AND r2 

我存储在一个列表中

所以我的问题是 当我尝试在 mongodb 中查找数据(数据在)时,我做了这个: datamongo = collection.find({"data" : data[x]}) 结果什么都没有。

我需要使用列表范围创建一个循环,并在 mongodb 中搜索列表中的每个数据。 我试过find() and find_one(),但没有一个能工作。 但是,如果我放置一个常量而不是一个变量,那么一切正常。

希望有人能帮帮我

【问题讨论】:

    标签: python mysql mongodb find


    【解决方案1】:

    regex 部分来了。您需要以如下所述的方式使用该值

    collection.find({"data" : new RegExp(data[x], 'i')})
    

    或者你也可以使用

    collection.find( { 'data' : { '$regex' : data[x], '$options' : 'i' } } )
    

    注意iRegExp 中,这只是为了不区分大小写比较。如果您想严格比较,请将其删除。

    希望对您有所帮助。

    谢谢

    【讨论】:

    • 嗨。谢谢你的回答。我尝试这样做,但我仍然有问题。代码:datasql = cursor.fetchall() query = str(datasql[0]) datamongo = collection.find_one({ "datetime" : {"$regex" : query, "$options" : "i"}, "zone" : "MX" }, {"datetime" : 1} ) data = str(datamongo) print(data) 和控制台打印 "none"
    • 这是因为它是异步的。
    猜你喜欢
    • 2018-01-04
    • 2020-04-03
    • 2020-05-03
    • 1970-01-01
    • 2011-06-25
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多