Mongodb基本操作

华为FusionCompute之计算虚拟化 华为FusionCompute之虚拟化 阅读详情

mongodb的官方文档请查看:https://docs.mongodb.com/manual/reference/update-methods/

1.db.getCollection('二手房').find({},{province:1}) (投影,只取province这个字段)

 

image.png

2.db.getCollection('二手房').find({},{province:1}).forEach(function(item){
db.getCollection('测试表1').save(item)
}) (取出想要的字段,然后保存在不同的表中)

 

image.png

3.db.getCollection('二手房').find({},{area:1,unit_price:1,})
.forEach(function(row){
area = row.area
unit_price = row.unit_price
area = area.replace('平米','');
unit_price = unit_price.replace('元/平米','');
row.area = area
row.unit_price = unit_price
db.getCollection('新表2').save(row);

}) (把字段中的文字替换为空再插入例外一张表)

image.png

4.db.getCollection('二手房').find({})
.forEach(function(item){
item.area = parseFloat(item.area);
item.unit_price = parseFloat(item.unit_price);
item.attention = parseFloat(item.attention);
sees = String(item.sees);
print(sees);
sees = sees.replace(' 共','');
print(sees);
item.sees = parseFloat(sees);
item.total_price = parseFloat(item.total_price);
db.getCollection('新表6').save(item);})

image.png

(把字符串转换成数字, parseFloat会保留小数点后面的,所以一般选择这个)
(注意,语言都有字符串转数字的功能,但是转换的时候第一个必须要是数字,要不就识别不了。如“你好121”就识别不了,但是"123你好"就可以识别。所以转换的时候可以先把开头不是数字的替换掉。
)

注意:mongodb里面无论是投影还是聚合,选中的都是含有那个字段的整个文档,所以那个字段里面的文档有那些字段,也可以对那些字段进行处理。如聚合中的求平均值,总和等。聚合分组就是把含有那个字段的文档分成一组,并不是仅仅把那个子段进行分组。是含有那个字段的文档(但是显示的时候是默认显示那个字段的),投影中不能用聚合表示式,比如$sum这些。投影一般是用来显示你想要的信息。

5.db.getCollection('新表6').aggregate([{group:{_id:"position",count:{sum:1},area_avg:{​avg:"area"}, sees_count:{​sum:"sees"}, attention_sum:{​sum:"attention"}, unit_price_avg:{​avg:"unit_price"}, total_price_avg:{​avg:"$total_price"},
}}])
(代码简书解析不了可以看截图)

image.png

 

  1.  

db.getCollection('新表6').aggregate([{group:{_id:"position",count:{sum:1},area_avg:{​avg:"area"}, sees_count:{​sum:"sees"}, attention_sum:{​sum:"attention"}, unit_price_avg:{​avg:"unit_price"}, total_price_avg:{​avg:"$total_price"},
}}]).forEach(function(item){
db.getCollection('汇总表').save(item)
})

image.png

  1.  

image.png

(想查看是否新增数据的时候要查找,或者不断地往下找,在上面看不了,增加的数据有新增的字段也要桌面连接工具解析到那个文档才看得到)

8.增加数据(也叫插入数据),数据格式必须是{}就是一个文档,若想增加多条数据那就用数组[](js里面这个叫数组,python里面这个叫列表 ),insert([{},{},{},{},{}])。
增加数据的还有两个方法:db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据
其实这个两个方法是对insert的拆分,只是让语意更清晰,让人读起来一下子就知道是插入多少条数据了。
db.getCollection('新表5').insert({name:"猪八戒",age:22,gender:"男"})

9.当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来作为文档的唯一标识(这个东西的主要作用是:当我们在开发环境导入数据到生产环境的时候,就不会怕数据库的数据会被重复,因为所有数据都是唯一的,独一无二的,那个_id你也可以自己调用objectid()生成)。你也可以自己设置那个_id但是要确保唯一性。

10.查询
db.getCollection('二手房').find({})
find({})或者find()都是表示查找所有集合中所有的文档
find({}) {}里面可以传入多个查询的限制条件,如find({age:"18",name:"xx"}),符合这个两个条件的文档才会显示。
find()查找的是集合中符合条件的所有文档,find()返回的是一个数组,不是对象 ,可以用下标[0]来取某第一个数据,依次类推。

findOne()用来查询集合中符合条件的第一个文档,返回的是一个对象。
find().count()查询所有文档的总数。

11.修改
db.getCollection('二手房').update(查询条件,新对象)
修改首先要传入两个参数,1.查询条件(即是查询要修改的对象)
updata默认的是把新对象替换旧对象,而不仅仅是替换属性,是全部替换。
用set可以修改文档的指定属性。一般是用这个方法,来替换属性的值。 如:db.getCollection('新表2').update({"name" : "xx"},{​set:{age:22}})
$set这个是往文档中添加一个属性值。都是修改name等于xx的那个文档的属性值,并不是修改所有文档中的name。

db.getCollection('新表2').update({"name" : 22.0},{unset:{"name":1}})unset是删除文档中的属性值直接属性名name就可以了,后面那个随便写。这个也是修改name等于22.0的那个文档的属性值,并不是修改所有文档中的name

2.新对象(即是要把查询的对象修改为当前对象)。

image.png

mongodb的属性即是字段也是key,json格式中叫key,有多种叫法。

mongodb重要的概念就是文档,所有的操作都是围绕着文档。注意文档是一个一个的,并不是你在mongodb桌面连接工具上看到的那个文档。那个是集合(在关系型数据库里面就叫表,但是是两个不同的概念)。

12.删除
db.getCollection('新表2').remove({"name" : 22.0}) 默认删除符合条件的所有文档。
db.getCollection('新表2').remove({"name" : 22.0},ture) 传一个ture那只会删除一个,默认是删除多个。

db.getCollection('新表2').remove({})传一个空对象,那就把整个集合中的文档都删掉了。但是性能很差

image.png

image.png

image.png

image.png

 

13。往符合条件的文档设置一个属性

db.getCollection('新表6').updateMany({"province" : "广东"},{$set:{"number":1}})

 

14.对集合里面的多个字段进行分组,并计算相关的数值,结构化输出,并保存到例外一个集合中

 

db.getCollection('基础集合').aggregate([{$group:{_id:{position:"$position",name:"$name"},
count:{$sum:"$number"},
area_avg:{$avg:"$area"},
sees_count:{$sum:"$sees"},
attention_sum:{$sum:"$attention"},
unit_price_avg:{$avg:"$unit_price"},
total_price_avg:{$avg:"$total_price"},
}},

{$project:{position:"$_id.position",name:"$_id.name",count:"$count",
    area_avg:"$area_avg",sees_count:"$sees_count",attention_sum:"$attention_sum",
    unit_price_avg:"$unit_price_avg",
    total_price_avg:"$total_price_avg",
    }},
    
    ]).forEach(function(item){
        
        db.getCollection('汇总表6').insert(item)
        })

 

15.可以把字段改成中文,不过要注意子弹里面不能有英文符号,解析不了:

db.getCollection('基础集合').aggregate([{$group:{_id:{position:"$position",name:"$name"},
count:{$sum:"$number"},
area_avg:{$avg:"$area"},
sees_count:{$sum:"$sees"},
attention_sum:{$sum:"$attention"},
unit_price_avg:{$avg:"$unit_price"},
total_price_avg:{$avg:"$total_price"},
}},

{$project:{区域:"$_id.position",小区名字:"$_id.name",房子数量:"$count",
    参观次数:"$sees_count",关注人数:"$attention_sum",
    平均面积:"$area_avg",
    平均单价_元每平米:"$unit_price_avg",
    平均总价_万每套:"$total_price_avg",
    }},
    
    ]).forEach(function(item){
        
        db.getCollection('汇总表7').insert(item)
        })

 

K230在原有LVGL控件触摸屏控制的基础上,增加USB鼠标控制! 搭配CanMV图形化编程,中小学生可快速开发“键鼠控制AI小游戏”“智能画板”等趣味项目,降低AI学习门槛;:HDMI屏幕+键鼠组合,直接在开发板上调试代码、修改ISP参数、查看AI推理日志,无需频繁连接电脑;:打造带交互的AI设备(如工业控制面板、智能显示器),鼠标操作菜单、键盘输入指令,体验媲美小型PC;:无网络场景下,通过键盘直接向AI设备录入数据、配置参数,适配野外监测、本地工控等场景。,自动识别、快速响应,完美适配交互控制、参数调试、数据输入等场景。 阅读详情

相关推荐

先进封装技术的一些优缺点探讨

半导体封装技术是半导体制造过程中的关键环节,它不仅保护了芯片免受物理损伤,还提供了电气连接和散热功能。随着技术的发展,出现了多种先进的封装技术,每种技术都有其特定的应用场景和优缺点。

阿拉伯梳子的专栏 2168

MongoDB Collation 对字符串按照数值来排序

mongoDB collation排序

路在脚下的博客 1711

本地部署DeepSeek-Coder-6.7B 离线版的完整指南:打造适配当前系统的AI助手

《DeepSeek-Coder-6.7B本地部署指南》详细介绍了如何离线部署这款专注于代码生成的AI模型。文章涵盖硬件要求(推荐8核CPU、32GB内存、NVIDIA RTX3080显卡)、软件依赖(Python3.8+、CUDA11.0+、PyTorch1.9+)以及具体安装步骤,包括模型下载、路径配置和GPU加速设置。重点说明如何通过输入系统配置文档和使用说明书,让模型生成适配特定系统的代码,并提供了参数调优和模型微调的方法。该指南旨在帮助开发者在本地安全高效地使用AI助手,实现代码自动生成与优化,提升

欢迎来到我的优快云博客!我专注于技术创新和数字化转型,特别是在低代码平台、人工智能和大数据分析领域的探索与应用。通过深入分析各种行业案例,帮助企业加速数字化进程,提升运营效率与创新能力。在这里,您将找到关于低代码平台、AI技术、数据分析与 1492

MongoDB中的key命名规则是什么?

与JS变量命名类似,结合js变量的命名规则考虑

m0_56991207的博客 1299

开源网格划分软件-Gmsh二次开发教程 (4)网格生成与控制​

​本章将深入讲解Gmsh的网格生成技术,包括全局/局部网格控制、边界层生成、自适应细化等,并提供完整的代码示例。

ZQGG的博客 1472

深入解析AndroidManifest.xml与device_admin.xml:打造完美DeviceOwner应用配置

本文深入解析了Android企业级开发中DeviceOwner应用的核心配置文件AndroidManifest.xml与device_admin.xml。详细阐述了如何精准声明DeviceAdminReceiver、定义管理策略,并提供了通过ADB命令进行设置与验证的实战指南,帮助开发者构建权限完整、配置正确的设备所有者应用。

ice55的博客 679

对mongodb中的数据类型进行转换(如字符串转换成整型)

例如在mongodb中有数据库(taobao),表(product),表中有一deal字段本来存储的是字符串类型,现在要把deal中的值改为整型。 方法是在mongodb(robo)中运行 db.getCollection('product').find({'deal' : { $type : 2 }}).forEach(function(x) { x.deal = NumberIn...

西门大盗 捉虫专家 2万+

spm FMRI 各种小问题合集

预处理 1、预处理结果从normalize之后开始头歪、变形 问题描述:如下图 原因:DICOM2NIfTI时必须检查对应的T1像。下面是两种错误形式,第一种容易发现,第二种容易忽视,大脑失状位左右颠倒。 解决:重新转了一回格式,建议用SPM fmri进行格式转换。之前是用MRIconvert转换的,用了两台电脑,有的T1结果是对的,不确定什么原因产生的错位,操作都是一样的。 2、Check reg大脑图片边缘出边框 问题描述: 原因:应该是图片排版导致的,单独check就会发现大脑是全的。 解决

weixin_44669441的博客 1675

mongodb字段类型转换

字符串转数字类型 ​​​​​​​db.collectionName.find().forEach(function(x){x.FieldName=parseInt(x.FieldName);db.collectionName.save(x);});

Lonely_Devil的博客 1236

Matlab路径文件pathdef.m可能为只读文件修改方法

找到MATLAB目录下的bin这个文件夹,直接改这个文件夹的权限(之前试过改pathdef.m的权限,不好用)如果到这里重新导入还是不行,从官网重新下载需要的安装包,可能是你的安装包出了问题。(Win11系统,matlab版本为2022b)编辑——添加——在输入对象名称来选择中输入everyone。重启matlab,以管理员身份运行。并修改其他已有的权限,都给它。

yqc1123的博客 1万+

IP白名单校验

支持格式: 1、127.0.0.1 // 指定固定IP 2、127.0.0.1-127.0.0.128 // 可使用“-”来表示一个IP区间,支持跨IP段(一般不会出现这种情况,跨IP段则配置多个规则) 3、127.0.* // 2~4位IP段可...

2199

MongoDB 聚合管道中使用日期表达式运算符

日期表达式运算符主要用于实现日期运算,主要包括了转换成日期、获取日期的年月日时分秒等操作

Mointor 1875

Openclaw接入大模型API,操作本地windows文件

本文介绍了在WSL2环境下配置OpenClaw使用阿里百炼API的方法。主要内容包括:1)确认WSL2安装完成;2)配置阿里百炼API(需注意Qwen3-Max-Thinking为收费模型);3)提供正确的JSON配置格式示例,强调apiKey必须填写真实值;4)说明配置错误需修改Linux配置文件;5)建议通过询问模型信息验证连接成功。后续将介绍如何切换免费API及本地文件访问功能。

qq_27246521的博客 989

MongoDB的基本操作

1 连接数据库2 创建数据库3 查看数据库4 删除数据库5 创建/删除/显示集合6 插入文档7 更新文档8 查询文档9 删除文档。

jlq270400的博客 5603

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

mongodb基本操作

mongodb基本操作mongodb简介与mysql的对应:基本操作显示数据库添加或切换到数据库删除数据库创建集合查看集合删除集合添加文档查看文档条件查找修改文档删除文档关闭数据库 mongodb简介 MongoDB是一个NoSQL数据库,它是跨平台的,基于分布式文件存储的数据库,由C++语言编写的(在Linux下需要安装gcc环境)。MongoDB是以文档的形式存储数据,数据结构由键值(key:value)对组成,类似JSON。 关系型数据库: mysql sqlserver oracle db2

chuxuezhe__1的博客 1500

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MongoDB数据表基本操作

MongoDB数据表基本操作 查看全部数据表 > use ChatRoom switched to db ChatRoom > show collections Account Chat system.indexes system.users   创建数据表 > db.createCollection("Account") {"o

xiaohubeiplus的博客 4962

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MongoDB安装及基本操作

以上就是今天要讲的内容,本文仅仅简单介绍了mongoDB的使用,而mongoDB提供了大量能使我们快速便捷地处理数据的函数和方法。

CREATED BY RICK. 486

MongoDB基本操作

MongoDB是属于NoSql的一种数据类型。MongoDB是一款强大、灵活、且易于扩展的通用型数据库。MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨再为WEB引用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档(类似JSON对象),数据结构由键值(key=>value)对组成支持丰富的查询表达,可以设置任何属性的索引;支持副本集、分片。它是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

2401_84239988的博客 1881

MongoDB数据库简介及基本操作指令

目录MongoDBNoSQLMongoDB特点基本概念数据类型基本操作指令 MongoDB NoSQL NoSQL:是非关系型数据库系统的总称,数据以key-value的方式存储。而MongoDB就是一个常见的非关系型数据库的产品。 有关非关系型数据库内容,请阅读历史博客:https://blog.youkuaiyun.com/weixin_53186633/article/details/119531661 MongoDB特点 (1)MongoDB 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案,由C++编

星河梦~的博客 1870

mongodb的基本操作

/usr/local/mongodb/bin/mongo#启动mongodb MongoDB shell version: 2.2.6 connecting to: test show dbs;#查看数据库 imooc 0.203125GB local (empty) use imooc_2#当没有imooc_2数据库时这个命令相当于创建了此数据库 switc

hmy_362322的博客 973

Mongodb的基本操作

掌握 mongodb插入数据的方法掌握, mongodb保存数据的方法掌握 ,mongodb查询数据的方法掌握 ,mongodb查询结果的处理方法掌握 ,mongodb更新数据的方法掌握 ,mongodb删除数据的方法

__Samual的博客 2139

Linux系统安装MongoDB及基本操作

同时插入多行数据:db.文档名称.insertmany([{key:value},{key:value},{key:value}])13.更新数据:db.info.update({_id:"3"}, {$set:{nickname:"jack"}})5.删除数据库:db.dropDatabase() 注:(进入库后删除)9.插入数据: db.文档名称.insert({key:value})12.全文删除:db.集合名称.remove({})8.删除集合:db.name.drop()

2302_77349861的博客 1419

MongoDB简介及基本操作

/对于g r o u p 分组 i d 是必选项,选择字段 t y p e 进行分组时,字段前面要加上 group分组 id是必选项,选择字段type进行分组时,字段前面要加上group分组id是必选项,选择字段type进行分组时,字段前面要加上符号。insert()和save()方法的区别在于,若使用insert()方法插入文档时,集合中已存在该文档,则会报错。练习4:使用$min表达式,将集合陈中的文档按类型type进行分组,并计算各个分组中价格price最小值,具体命令如下。

a2024611的博客 1921

mongoDB的shell的基本操作

mongoDB的shell的基本操作   默认是以test用户操作,我们可以通过mongolocalhost:27017/admin增大权限   1.创建一个数据库   use[databaseName]   但是若什么也不做就退出的话这个空数据库会被删除   2.查看所有数据库   showdbs   3.给指定数据库添加集合并且添加记录   db

u014464526的专栏 333

MongoDB安装和基本操作

MongoDB安装和基本操作实验过程安装安装完成后通过cd命令进入到相应的文件夹目录下,通过dir命令查看文件夹下的命令 直接使用mongo命令测试,发现连接失败,原因:需要先开启mongod服务 把mongodb安装为windows服务(需要切换到管理员模式下)并且尝试连接到mongo服务器 基本操作创建数据库 给数据库添加一个表格,并在集合当中添加记录> db.creat

Season_For_Lin的专栏 603
上一篇: scrapy默认去重
djs123DJS
博客等级 码龄9年 49粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值