插入命令在命令行上有效但在pymongo中无效 错误:键'$date'不得以'$'开头

2024-09-29 05:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pymongo自动填充一个表中的数据,之前我一直在手动插入该表。我遇到的问题是,我的insert语句在命令行中工作,但在pymongo中抛出的“key'$date'不能以'$'开头”错误。注意:在mongo命令行中尝试使用update()时,我收到了相同的错误

我正在使用python3和mongodb4.0.10

这是我的密码:

命令行查询:

device_query = {
    "_id":device_ids[i],
    "customer_id":"18012320",
    "rep":"MVO2",
    "active":"true",
    "description":descriptions[i],
    "location":"test, test" ,
    "system":"MM 60 gallon, 40 LPM, pre-HPR",
    "device_type":"O2",
    "iot_start_date":{
        "$date":{
            "$numberLong":"1563598800000"
        }
    },
    "iot_expire_date":{
        "$date":{
            "$numberLong":expirations[i]
        }
    }
}
device.insert_one(device_query)`

此代码成功插入文档

pymongo代码:

device_query = {
    "_id":device_ids[i],
    "customer_id":"18012320",
    "rep":"MVO2",
    "active":"true",
    "description":descriptions[i],
    "location":"test, test" ,
    "system":"MM 60 gallon, 40 LPM, pre-HPR",
    "device_type":"O2",
    "iot_start_date":{
        "$date":{
            "$numberLong":"1563598800000"
        }
    },
    "iot_expire_date":{
        "$date":{
            "$numberLong":expirations[i]
        }
    }
}
device.insert_one(device_query)`

此代码引发 键“$date”不能以“$”开头


Tags: 代码命令行testididsdatedevice错误
1条回答
网友
1楼 · 发布于 2024-09-29 05:28:11

您不需要在pymongo代码中使用$date$numberLong,只需在字段中传递值即可

试试这个:

device_query = {
    "_id":device_ids[i],
    "customer_id":"18012320",
    "rep":"MVO2",
    "active":"true",
    "description":descriptions[i],
    "location":"test, test" ,
    "system":"MM 60 gallon, 40 LPM, pre-HPR",
    "device_type":"O2",
    "iot_start_date":1563598800000,
    "iot_expire_date":expirations[i]
}
device.insert_one(device_query)

相关问题 更多 >