MongoDb 入门(一)
文章目录
一. mongodb 和 redis 的区别
mongoDb是一个使用 C++ 语言编写的,基于分布式文件存储的数据库。而redis 是基于 c 语言编写的。mongDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的数据库。他支持的数据结构非常松散,而且查询语句非常强大。
二. 什么情况下选用 mongodb?
需求一:
如果对于海量数据,使用 redis ,很容易导致内存吃不消,从内存的角度考虑,唯一的方法,是添加内存条。
有没有一种数据库,可以把我们经常使用到的数据放在内存里,把一些不经常使用的数据放在硬盘中。mongodb 存在于关系型和非关系型之间的一种数据库。
需求二:
我需要根据时间段,查找出当前时间段记录的日志。写代码,先用 core 代码从 redis 中吧所有的数据都查找出来。接着 for ,然后筛选。
mongodb的优点(相比较redis)
- 只有一个点,节约内存,实现冷热数据(热数据放在内存中,冷数据放在硬盘中)
- 他是一个高并发情况下,快速写入海量数据的一种产品
- 可以写筛选条件。
mongodb的属性(与关系型数据库的区别)
- database 数据库(和mysql一样)
- collection 集合(mysql 中叫 表)
- docment 文档(mysql 中叫一行数据)
mongodb 的优点(和关系型数据比较)
- 我们不需要提前去设计好我们的数据结构
- 我们想往里面写数据,只要是json格式就 ok 了。
三. MongoDb 简单的用法
执行的基本命令有点类似于 SQL 语句(直接使用mongodb的管理软件,进行操作即可)。
db.test001.insert({id:1,age:12,address:"abcd"})
db.test001.find({})
.projection({})
.sort({_id:-1})
.limit(100)
直接使用 mongodb ,直接可以使用 mongodb 管理软件
进行操作即可。语法比较丰富,而且灵活
for(var i=1;i<11;i++){
db.test001.insert([{id:i,name:"aass"+i}])
}
db.test001.find({})
.projection({})
.sort({_id:-1})
.limit(100)
执行后的结果如下:
四. 使用 C# 实现对 mongodb 的操作
4.1 下载第三方的 nuget 包
4.2 使用代码,实现对 mongdb数据库的操作
下面是使用阿里云的 mysql 数据库的操作
public class JsonOperation
{
public static void Show() {
// mongdb的数据库连接
var client = new MongoClient("mongodb://47.92.100.188:5008");
var databse = client.GetDatabase("test01"); // 要找哪个数据库
var document = BsonDocument.Parse("{a:1,b:[{c:1}],D:'ff'}");// 要写入的内容
databse.GetCollection<BsonDocument>("test001").InsertOne(document);// 写到表里;
}
}
数据库结构:
参考目录
[1] mongdo 的C# 操作的官网