Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';MongoDB find()查询有什么问题(不等于)?_Python_Mongodb_Pymongo - Fatal编程技术网

Python 什么';MongoDB find()查询有什么问题(不等于)?

Python 什么';MongoDB find()查询有什么问题(不等于)?,python,mongodb,pymongo,Python,Mongodb,Pymongo,我正在尝试查找具有特定ID且状态不为-1的所有文档 为什么在pymongo中会出现语法错误 machine = db2.machine.find( { "account_id": account_id, "status": { $ne: -1 } } ) 注: account_id是一个值为ObjectId(“5397929402b8541ae8a32349”)的变量。 如果我删除状态行,它工作正常 与Jav

我正在尝试查找具有特定ID且状态不为-1的所有文档

为什么在pymongo中会出现语法错误

machine = db2.machine.find(
        {
            "account_id": account_id,
            "status": { $ne: -1 }
        }
   )
注:

  • account_id是一个值为ObjectId(“5397929402b8541ae8a32349”)的变量。
  • 如果我删除
    状态
    行,它工作正常

  • 与JavaScript不同,您需要在Python中将
    $ne
    包装成一个字符串

    因此:

    这是因为在Python中,当您定义字典时,您不能这样做

    {key: "one"}
    
    你需要做什么

    {"key": "one"}
    
    在第一种情况下,“key”指的是一个不存在的变量。您可以按如下方式结束第一个案例:

    >>> key = "name"
    >>> {key: "one"}
    {'name': 'one'}
    

    您案例中的另一个复杂问题是,您试图访问名为
    $ne
    的变量,该变量名无效。

    谢谢!我一知道你的答案就马上给你打分。只是出于好奇,是不是因为$是一个保留字符,所以需要将其放入字符串中?更新了我的答案,以便您可以看到发生了什么
    >>> key = "name"
    >>> {key: "one"}
    {'name': 'one'}