MongoDB 简介

本文介绍了MongoDB的基础知识,包括其特点、安装步骤及基本命令的使用方法。MongoDB是一个高性能、易部署且易使用的分布式文件存储数据库,支持多种编程语言。

**MongoDB **简介

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。最像关系型数据库的。

MongoDB 优点

高性能、易部署、易使用,存储数据非常方便

· 面向集合存储,易存储对象类型的数据。

· 模式自由。

· 支持动态查询。

· 支持完全索引,包含内部对象。

· 支持查询。

· 支持复制和故障恢复。

· 使用高效的二进制数据存储,包括大型对象(如视频等)。

· 动处理碎片,以支持云计算层次的扩展性

· 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。

文件存储格式为BSON(一种JSON的扩展)

BSON是一种类似**json的二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和**数组对象

Ø 数据库功能是用来存储数据的。

Ø 数据库分为关系系数据库和非关系型数据库(nosql)

Ø 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。

Ø 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。

MongoDB配置

Mongodb官网下载最新版本的:https://cloud.mongodb.com/

例如安装在 d盘

D:\Program Files (x86)\MongoDB\Server\3.2\bin

所以在bin文件夹下找到mongod.exe命令,然后通过管理员执行

执行这些命令,需要以管理员身份运行cmd

mongod --dbpath x路径x

当然路径不要包含特殊的字符串,比如Program Files (x86)也不行

mongod --dbpath D:\mongodb\data\db

启动MongoDB

**以管理员身份运行cmd.exe,**进入dos命令界面,执行下列命令

> mongod --storageEngine mmapv1 --dbpath “d:\mongodb\db” --logpath “d:\mongodb\log\MongoDB.log”

测试连接

原来的cmd窗口不关闭,以管理员身份再****开一个cmd窗口,输入mongo或者mongo.exe,出现如下信息说明测试通过,此时我们已经进入了test这个数据库。

[外链图片转存失败(img-WYfDLyjk-1563791375916)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7808\wps1.jpg)]

启动mongodb服务

> NET START MongoDB

[外链图片转存失败(img-lqRDw6rd-1563791375918)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml7808\wps2.png)]

打开任务管理器,可以看到进程已经启动。

再次测试连接

> mongo

关闭mongodb服务

ctrl+c

关闭服务:net stop MongoDB

1. Mongo DB基础使用

常用的命令

>Help 查看帮助

· 显示数据库列表 > show dbs

· 创建数据库 > use dbname

· 如果数据库不存在,则创建数据库dbname,否则切换到指定数据库dbname。创建的数据库并不在数据库的列表中,要显示它,我们需要向数据库dbname插入一些数据

· MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

显示数据库中的集合 show collections

增加数据

· db.web.save({“name”:“老李”}) 创建了名为web的集合,并新增了一条{“name”:“老李”} 的数据

· db.web.insert({“name”:“ghost”, “age”:10}) 在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建

· save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。

删除数据

· db.users.remove({}) 删除users集合下所有数据

· db.users.remove({“name”: “lecaf”}) 删除users集合下name=”lecaf”的数据

· db.users.drop()或db.runCommand({“drop”:“users”}) 删除集合users

· db.runCommand({“dropDatabase”: 1}) 删除当前数据库,注意 此处的1没加双引号。

查找数据

· db.users.find() 查找users集合中所有数据

· db.users.findOne() 查找users集合中的第一条数据

· db.users.find().pretty() 格式化查询到的数据

修改数据

· db.web.update({“name”:“a1”}, {$set: {sex:”women”}},true,true) 修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容主键不能修改,第三个参数表示匹配所有符合条件的数据

MongoDB高级命令

db.collection.find({ “key” : value }) 查找key=value的数据.

db.collection.find({ “key” : { $gt: value } }) key > value

db.collection.find({ “key” : { $lt: value } }) key < value

db.collection.find({ “key” : { $gte: value } }) key >= value

db.collection.find({ “key” : { $lte: value } }) key <= value

db.collection.find({ “key” : { $gt: value1 , $lt: value2 } }) value1 < key <value2

db.collection.find({ “key” : { $ne: value } }) key <> value 条件为 country不等于value

db.collection.find({ “key” : { $mod : [ 10 , 1 ] } }) 取模运算,条件相当于key % 10 == 1 即key除以10余数为1的

db.collection.find({ “key” : { $in: [ 1, 2, 3 ] } }) 属于,条件相当于key等于[ 1, 2, 3 ]中任何一个.

db.collection.find({ “key” : { $nin: [ 1, 2, 3 ] } }) 不属于,条件相当于key的值不属于[ 1, 2, 3 ]中任何一个。

db.collection.find({ “key” : { $size: 1 } }) $size 数量、尺寸,条件相当于key对应的值的数量是1(值必须是数组)

db.collection.find({ “key” : { $exists : true|false } })

$exists 字段存在,true返回存在字段key的数据,false返回不存在字段key的数据

db.collection.find({ $or : [{a : 1}, {b : 2} ] })

符合两个条件中任意一个的数据。$or语法表示或的意思。 (注意:MongoDB 1.5.3后版本可用),符合条件a=1的或者符合条件b=2的数据都会查询出来。

db.singer.insert({“name”:“test2”,score:{“yy”:80,“sx”:79,“wy”:95}}) 插入一条测试数据

db.collection.find().sort({ “key1” : -1 ,“key2” : 1 }) 这里的1代表升序,-1代表降序

其他

db.collection.find().limit(5) 控制返回结果数量,如果参数是0,则没有约束,limit()将不起作用

db.collection.find().skip(5) 控制返回结果跳过多少数量,如果参数是0,则当作没有约束,skip()将不起作用,或者说跳过了0条

db.collection.find().skip(5).limit(5) 可用来做分页,跳过5条数据再取5条数据

db.collection.find().count() count()返回结果集的条数

db.collection.find().skip(5).limit(5).count(true) 在加入skip()和limit()这两个操作时,要获得实际返回的结果数,需要一个参数true,否则返回的是符合查询条件的结果总数

模糊查询:

db.collection.find({“name”:/ab/})

源码地址: https://pan.quark.cn/s/3916362e5d0a 在C#编程平台下,构建一个曲线编辑器是一项融合了图形用户界面(GUI)构建、数据管理及数学运算的应用开发任务。 接下来将系统性地介绍这个曲线编辑器开发过程中的核心知识点:1. **定制曲线面板展示数据曲线**: - 控件选用:在C#的Windows Forms或WPF框架中,有多种控件可用于曲线呈现,例如PictureBox或用户自定义的UserControl。 通过处理重绘事件,借助Graphics对象执行绘图动作,如运用DrawCurve方法。 - 数据图形化:通过线性或贝塞尔曲线连接数据点,以呈现数据演变态势。 这要求掌握直线与曲线的数学描述,例如两点间的直线公式、三次贝塞尔曲线等。 - 坐标系统与缩放比例:构建X轴和Y轴,设定坐标标记,并开发缩放功能,使用户可察看不同区间内的数据。 2. **在时间轴上配置多个关键帧数据**: - 时间轴构建:开发一个时间轴组件,显示时间单位刻度,并允许用户在特定时间点设置关键帧。 时间可表现为连续形式或离散形式,关键帧对应于时间轴上的标识。 - 关键帧维护:利用数据结构(例如List或Dictionary)保存关键帧,涵盖时间戳和关联值。 需考虑关键帧的添加、移除及调整位置功能。 3. **调整关键帧数据,通过插值方法获得曲线**: - 插值方法:依据关键帧信息,选用插值方法(如线性插值、样条插值,特别是Catmull-Rom样条)生成平滑曲线。 这涉及数学运算,确保曲线在关键帧之间无缝衔接。 - 即时反馈:在编辑关键帧时,即时刷新曲线显示,优化用户体验。 4. **曲线数据的输出**: - 文件类型:挑选适宜的文件格式存储数据,例如XML、JSON或...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值