前言
关于MongoDB更多的知识点可看我之前这篇文章:
MongoDB框架零基础入门
本身MongoDB的连接就和Mysql的数据库一样
Mysql连接方式:mysql -u -root -p(标准模式下)
MongoDB类似:mongo -u root -p
之所以要增加字段值
一般都是python web框架中,在form表单内增加了一个字段值写入数据库(只有最新的数据才有这个字段值)
之前数据没有的字段值只能通过数据库添加
具体添加方式可以通过数据库内或者脚本一键添加(两种方式都差不多)
1. 数据库内增加
在数据库内增加字段值
通过update增加即可
通过mongo连接上(区分版本号、用户名、密码、文档集合、端口号等)
我的连接方式为:mongo版本号 --host xxx -u 用户名 -p "密码" 文档集合 --port 端口号
链接上去之后就会显示mongo命令入口(类似mysql)
在该数据库增加所要的文档集合字段值
增加的同时为了保守起见,先通过find查询是否有该字段
格式如下:db.文档集合.find({字段值字典}).pretty()
代码示例如下:
db.manong.find({"age":18}).pretty()
查询到该字段值有值之后对其update更新添加某个字段值
格式如下:db.collection.update({query},{$set:{"":""}})
db.manong.update({"age":18},{$set:{'title':'码农- 研究僧'}})
再通过find进行查询是否有该字段值
如果是所有的数据都增加这个字段值为'title':'码农- 研究僧'
则代码如下:
db.manong.update({},{$set:{'title':'码农- 研究僧'}})
2. 脚本添加
通过脚本一键修改的方式比较保守保险
主要是终端稍微打错命令回车可能会造成致命错误
具体的脚本只需要连接mongo、查询mongo是否有该数据值(debug)、对应添加新的字段值
(所有的数据中都增加这个字段值)完整代码如下:
import datetime
from django.core.management.base import BaseCommand
# 引入连接mongo的函数,写在外部,就不在代码中放连接函数
from xx.common import get_mongo
class Command(BaseCommand):
def handle(self, *args, **options):
# 连接mongo
mongo = get_mongo()
values = {
"$set": {
"title":"码农- 研究僧"
}
}
mongo["集合"].update({}, values, multi=True)
# debug查询显示值
for record in mongo["集合"].find():
logger.info(record)
通过python xx.py(文件名)
执行该脚本
如果设置了虚拟环境执行脚本
具体可看我这篇文章:
Windows配置虚拟环境以及常用命令(图文解析)
另外一种情况就是:
对应某个数据增加这个字段值的脚本如下:(核心代码)
params = {
"age": 18
}
values = {
"$set": {
"title":"码农- 研究僧"
}
}
mongo["集合"].update(params, values)
# debug查询显示值
for record in mongo["集合"].find():
logger.info(record)