• 如何向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()
    
    • 1

    查询到该字段值有值之后对其update更新添加某个字段值
    格式如下:db.collection.update({query},{$set:{"":""}})

    db.manong.update({"age":18},{$set:{'title':'码农- 研究僧'}})
    
    • 1

    再通过find进行查询是否有该字段值

    如果是所有的数据都增加这个字段值为'title':'码农- 研究僧'
    则代码如下:

    db.manong.update({},{$set:{'title':'码农- 研究僧'}})
    
    • 1

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    通过python xx.py(文件名)执行该脚本
    如果设置了虚拟环境执行脚本
    具体可看我这篇文章:
    Windows配置虚拟环境以及常用命令(图文解析)

    另外一种情况就是:
    对应某个数据增加这个字段值的脚本如下:(核心代码)

    params = {
        "age": 18
    }
    values = {
        "$set": {
            "title":"码农- 研究僧"
        }
    }
    mongo["集合"].update(params, values)
    
    # debug查询显示值
    for record in mongo["集合"].find():
        logger.info(record)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    redis常用命令
    【LoRa-温湿度光照数据无线传输(点对多通讯)】
    如何设计账户余额的数据准确性?
    腾讯云[HiFlow】| 自动化 -------HiFlow:还在复制粘贴?
    使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
    快速搜索多个word、excel等文件中内容
    Vue3+Vite实现工程化,attribute属性渲染v-bind指令
    flink-cep实践
    uniapp框架开发的基于java的学习记录与提醒应用系统
    双非渣渣的上岸之路!备战 60 天,三战滴滴侥幸收获 Offer
  • 原文地址:https://blog.csdn.net/weixin_47872288/article/details/125600472