2020-08-11 更新
>>> import pymongo
# 登录及认证
>>> myclient = pymongo.MongoClient('mongodb://10.8.15.49:27017/')
>>> mydb = myclient['web_data']
>>> mydb.authenticate('username', 'password')
True
# 显示数据库下集合名称
>>> mydb.list_collection_names()
['xxxxx']
>>> mycol = mydb["web_market_information"]
# 插入一条数据
>>> x = mycol.insert_one(result)
>>> print(x.inserted_id)
# 更新一条数据
>>> newvalues = {"$set": result}
## 过滤条件
>>> myquery = {
... "1_level_type": result['1_level_type'],
... "2_level_type": result['2_level_type'],
... "update_date": {
... "$regex": "^2020-08-12"
... }
... }
## 最后一个参数是True则在没有检索到时新增该条数据
>>> x = mycol.update_one(myquery, newvalues, upsert=True)
实际使用中发现用update_one(, , upsert=True)比insert_one更多
2020-08-19 更新
如果想实现仅在有新数据插入时更新数据,而不对已有数据更新的规则,需要将上面代码中’$set’换为’$setOnInsert’即可
在python中将字段设置为datetime类型,需要将值转为datetime对象
{
"update_date": datetime.datetime.now()
}