MongoDb 入门(一)



一. mongodb 和 redis 的区别

mongoDb是一个使用 C++ 语言编写的,基于分布式文件存储的数据库。而redis 是基于 c 语言编写的。mongDB 是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的数据库。他支持的数据结构非常松散,而且查询语句非常强大。



二. 什么情况下选用 mongodb?

需求一
如果对于海量数据,使用 redis ,很容易导致内存吃不消,从内存的角度考虑,唯一的方法,是添加内存条。
有没有一种数据库,可以把我们经常使用到的数据放在内存里,把一些不经常使用的数据放在硬盘中。mongodb 存在于关系型和非关系型之间的一种数据库。

需求二
我需要根据时间段,查找出当前时间段记录的日志。写代码,先用 core 代码从 redis 中吧所有的数据都查找出来。接着 for ,然后筛选。

mongodb的优点(相比较redis)

  1. 只有一个点,节约内存,实现冷热数据(热数据放在内存中,冷数据放在硬盘中)
  2. 他是一个高并发情况下,快速写入海量数据的一种产品
  3. 可以写筛选条件。

mongodb的属性(与关系型数据库的区别)

  1. database 数据库(和mysql一样)
  2. collection 集合(mysql 中叫 表)
  3. docment 文档(mysql 中叫一行数据)

mongodb 的优点(和关系型数据比较)

  1. 我们不需要提前去设计好我们的数据结构
  2. 我们想往里面写数据,只要是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# 操作的官网

[2] https://www.bilibili.com/video/BV1Pi4y1x7p2?p=11&t=848

[3] https://www.runoob.com/mongodb/mongodb-tutorial.html

猜你喜欢

转载自blog.csdn.net/zhaozhao236/article/details/114440555