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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 MongoDB,通用型 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 关于MongoDB更多的知识点可看我之前这篇文章:MongoDB框架零基础入门本身MongoDB的连接就和Mysql的数据库一样Mysql连接方式:mysql -u -root -p(标准模式下)MongoDB类似:mongo -u root -p之所以要增加字段值一般都是python web框架中,在form表单内增加了一个字段值写入数据库(只有最新的数据才有这个字段值)之前数据没有的字段值只能通过数据库添加具体添加方式可以通过数据库内或者脚本一键添加(两种方式都差不多)在数据库内增加字段值

前言

关于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)
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
NoSQL MongoDB 数据库
MongoDB的索引与索引字段的顺序
MongoDB的索引与索引字段的顺序
39 2
|
1月前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
33 3
|
1月前
|
消息中间件 SQL NoSQL
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。
Flink mongodb支持CDAS 到那些下游?如果是不定格式的如何处理呀?mongodb的动态字段。【1月更文挑战第19天】【1月更文挑战第94篇】
106 6
|
NoSQL MongoDB Redis
在MongoDB中使用聚合操作筛选与修改字段
在MongoDB中使用聚合操作筛选与修改字段
270 0
|
NoSQL MongoDB
MongoDB(14)- 查询 null 字段或缺少某个字段的文档
MongoDB(14)- 查询 null 字段或缺少某个字段的文档
310 0
|
NoSQL MongoDB 索引
MongoDB:16-MongoDB-索引数组字段和索引子文档字段
MongoDB:16-MongoDB-索引数组字段和索引子文档字段
865 0
|
NoSQL MongoDB
MongoDB:查询部分字段,指定返回字段
MongoDB:查询部分字段,指定返回字段
1038 0
|
NoSQL 关系型数据库 MySQL
【已解决】MongoDB 中根据指定字段筛选出具有重复值的记录
【已解决】MongoDB 中根据指定字段筛选出具有重复值的记录
689 0
【已解决】MongoDB 中根据指定字段筛选出具有重复值的记录
|
NoSQL Go MongoDB
go mongodb 忽略字段,go bson 忽略字段
go mongodb 忽略字段,go bson 忽略字段
1076 0