当前位置:网站首页>如何向mongoDB中添加新的字段附代码(全)
如何向mongoDB中添加新的字段附代码(全)
2022-07-05 21:52:00 【码农研究僧】
前言
关于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)
边栏推荐
- "Grain mall" -- Summary and induction
- Tips for using SecureCRT
- Parker驱动器维修COMPAX控制器维修CPX0200H
- Three components of openpyxl
- Defect detection - Halcon surface scratch detection
- SecureCRT使用提示
- Codeforces 12D Ball 树形阵列模拟3排序元素
- GCC9.5离线安装
- 场景化面试:关于分布式锁的十问十答
- Interviewer: will concurrent programming practice meet? (detailed explanation of thread control operation)
猜你喜欢
Huawei cloud modelarts text classification - takeout comments
递归查询多级菜单数据
场景化面试:关于分布式锁的十问十答
Efficiency difference between row first and column first traversal of mat data types in opencv
How can Huawei online match improve the success rate of player matching
"Grain mall" -- Summary and induction
华为云ModelArts文本分类–外卖评论
The Blue Bridge Cup web application development simulation competition is open for the first time! Contestants fast forward!
Kingbasees v8r3 cluster maintenance case -- online addition of standby database management node
AD637使用筆記
随机推荐
Haas506 2.0 development tutorial - Alibaba cloud OTA - PAC firmware upgrade (only supports versions above 2.2)
Summary of data analysis steps
Feng Tang's "spring breeze is not as good as you" digital collection, logged into xirang on July 8!
[daily training -- Tencent select 50] 89 Gray code (only after seeing the solution of the problem)
matlab绘制hsv色轮图
Image editor for their AutoLayout environment
Incentive mechanism of Ethereum eth
Interview questions for basic software testing
DataGrid directly edits and saves "design defects"
Chapter 05_ Storage engine
datagrid直接编辑保存“设计缺陷”
Oracle checkpoint queue - Analysis of the principle of instance crash recovery
资深电感厂家告诉你电感什么情况会有噪音电感噪音是比较常见的一种电感故障情况,如果使用的电感出现了噪音大家也不用着急,只需要准确查找分析出什么何原因,其实还是有具体的方法来解决的。作为一家拥有18年品牌
Oracle HugePages没有被使用导致服务器很卡的解决方法
Exercise 1 simple training of R language drawing
The American Championship is about to start. Are you ready?
Multiplexing of Oracle control files
华为联机对战如何提升玩家匹配成功几率
Net small and medium-sized enterprise project development framework series (one)
Matlab | app designer · I used Matlab to make a real-time editor of latex formula