如何向mongoDB中添加新的字段附代码(全)

前言

关于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)

猜你喜欢

转载自blog.csdn.net/weixin_47872288/article/details/125600472