NoSQL简介

NoSQL相关的技术最近越来越受欢迎,Mongo本身就是基于NoSQL实现的。关于NoSQL你需要了解

  1. 什么是NoSQL
  2. NoSQL和传统的关系型数据库有什么区别
  3. NoSQL的优缺点

这几个问题下面的文章有所介绍:

http://www.runoob.com/mongodb/nosql.html

http://www.infoq.com/cn/news/2011/01/nosql-why/

MongoDB

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

更详细的介绍可以参见:

http://www.runoob.com/mongodb/mongodb-intro.html

MongoDB安装

去http://www.mongodb.org/downloads 地址下载并安装MongoDB。

根据你的机器选择相应的安装包,32位系统上MongoDB数据库最大为2G。

安装结束后首先创建默认的数据库存储地址c:\data\db

通过命令行mongod.exe --dbpath c:\data\db来把mongodb和存储路径关联起来,命令行显示如下:

表示关联成功,并且在27017端口上监听连接。

MongoDB后台管理Shell

在安装路径下执行mongo.exe文件会执行MongoDB Shell,是一个自带的交互式的JavaScript Shell,用来对MongoDB进行操作和管理的交互式环境。

Shell中输入help显示帮助命令

数据库创建删除

  1. Shell中输入 use tutorial来尝试连接名为tutorial的数据库,如果数据库不存在则创建。
  2. 输入db.dropdatabase()来删除当前数据库。
  3. 输入show dbs显示数据库信息。

创建删除表信息

  1. db.websites.insert({title:'www.baidu.com',url:'www.baidu.com'}) 来在websites表中插入一条记录
  2. db.websites.find()查询

C#操作MongoDB

首先下载.NET版本的MongoDB Driver,尝试在Nuget找一下吧:

下载并安装。

找到了API我们就可以进行增删改查了,下面的Demo Code展示了基本的数据库操作。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

using System;

using System.Xml.Linq;

using MongoDB.Bson;

using MongoDB.Driver;

using Newtonsoft.Json;

using Newtonsoft.Json.Linq;

namespace WikiExampleConsole

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("Connect...");

            MongoConnectionStringBuilder builder = new MongoConnectionStringBuilder();

            builder.Server = new MongoServerAddress("localhost", 27017);

            builder.DatabaseName = "tutorial";

            MongoServer mongo = MongoServer.Create(builder);

            mongo.Connect();

            Console.WriteLine("Connected"); Console.WriteLine();

            var db = mongo.GetDatabase("tutorial");

            using (mongo.RequestStart(db))

            {

                var collection = db.GetCollection<BsonDocument>("books");

                BsonDocument book = new BsonDocument()

                    .Add("_id", BsonValue.Create(BsonType.ObjectId))

                    .Add("author""Ernest Hemingway")

                    .Add("title""For Whom the Bell Tolls");

                collection.Insert(book);

                var query = new QueryDocument("author""Ernest Hemingway");

                foreach (BsonDocument item in collection.Find(query))

                {

                    string json = item.ToJson();

                    Console.WriteLine(json);

                    Console.WriteLine();

                    JToken token = JToken.Parse(json);

                    token.SelectToken("title").Replace("some other title");

                    Console.WriteLine("Author: {0}, Title: {1}", token.SelectToken("author"), token.SelectToken("title"));

                    Console.WriteLine();

                    XNode node = JsonConvert.DeserializeXNode(json, "documents");

                    Console.WriteLine("Node:");

                    Console.WriteLine(node);

                    Console.WriteLine();

                    BsonElement author = item.GetElement("author");

                    BsonElement title = item.GetElement("title");

                    foreach (BsonElement element in item.Elements)

                    {

                        Console.WriteLine("Name: {0}, Value: {1}", element.Name, element.Value);

                    }

                    Console.WriteLine();

                    Console.WriteLine("Author: {0}, Title: {1}", author.Value, title.Value);

                }

            }

            Console.WriteLine();

            Console.Read();

            mongo.Disconnect();

        }

    }

}

相关代码托管在了https://github.com/cuicheng11165/Mongo-Demo上。

【转】.NET平台开发Mongo基础知识相关推荐

  1. 高通骁龙410C开发板基础知识

    高通骁龙410C开发板基础知识 高通骁龙410C开发板是基于高通400系列处理器的第一块开发板,性能优异,方便调试.它包含先进的电源管理,WIFI 蓝牙,GPS等等,所有都集成在一张信用卡大小的PCB ...

  2. NT内核和驱动开发的基础知识-笔记

    这是我在学习NT内核和驱动开发的基础知识时记录的一些笔记,不是连续的教程,欢迎指正错误的地方 ----------------------------------------------------- ...

  3. 前端开发之基础知识-HTML(一)

    1.1 html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网 ...

  4. Android camera(4)---Android Camera开发之基础知识篇

    Android Camera开发之基础知识篇 转自:https://blog.csdn.net/feiduclear_up/article/details/51968975#jump5 概述 Andr ...

  5. 音视频开发入门基础知识(视频入门篇)

    RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...

  6. 游戏开发unity基础知识系列:(一)unity 2019 下载与安装

    游戏开发unity基础知识系列:(一)unity 2019 下载与安装 声明:未经作者允许,严禁商用,转载请标明出处和来源,谢谢 零.前言 本人在unity2d方面使用较多,关于unity的使用后面预 ...

  7. 移动web开发入门—基础知识、自适应布局、调试

    之前没做过移动端web开发,最近接手的一个小项目是做微信公众号,需要考虑手机适配.UI给出的设计稿是一般是基于iphone手机做的(15年之后是基于ipone6),我们的UI是基于iphone6来做的 ...

  8. 音视频开发入门基础知识(音频入门篇)

    RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 前言 音频的采集和播放 音频常见的格式 音频的编码 前言 在音视频开发入门基础知 ...

  9. 嵌入式cmp指令的判断标志位_嵌入式开发的基础知识

    搜索了一些有关于对嵌入式开发的一些基础知识,分享给大家! 1.ARM中一些常见英文缩写解释 MSB:最高有效位: LSB:最低有效位: AHB:先进的高性能总线: VPB:连接片内外设功能的VLSI外 ...

最新文章

  1. jquery 获取 outerHtml 包含当前节点本身的代码
  2. conda pip安装在哪里_TensorFlow 2.0 安装指南
  3. 我给这个Python库打101分!
  4. 输入流输出流是以内存为标准_构建用于测试的超大内存输入流
  5. Maven下载Sql Server 2008的驱动包
  6. sqlmap使用方法
  7. mysql语言中修改表结构的命令_在T-SQL语言中,修改表结构时,应使用的命令是( )...
  8. Python下面向对象的三大实例
  9. matlab2012a for mac,matlab 2016a mac |matlab 2016a for mac免费版专业版 32位/64位 - 系统天堂...
  10. 布朗运动与金融数学:百年征途
  11. MAC Photoshop标题栏不见了
  12. python贴吧签到-基于Python3+Requests的贴吧签到助手
  13. [Pytorch系列-26]:神经网络基础 - 多个带激活函数的神经元实现非线性回归
  14. 如何设置快速启动栏 win7 快速启动栏 快速启动栏不见了.
  15. 2022.5.25 FreeSurfer入门练习:Recon-all
  16. 装甲逆袭-玩家碰撞处理
  17. latex公式常见问题:居中与左对齐,多行公式左对齐,上下标
  18. 一键式统计6.0季报测试
  19. 89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序
  20. 武汉大学和华中科技大学计算机哪个好,华科算不算十大名校 武汉大学和华中科技大学哪个好?...

热门文章

  1. Hadoop 配置文件 启动方式
  2. 蠢货别忘(一)common lisp funcall
  3. IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容
  4. Text段、Data段和BSS段
  5. Web应用中request获取各种获取path或URI,URL的方法
  6. 【LeetCode】44. Wildcard Matching (2 solutions)
  7. 地球化学图解系统GCDPlot 0.33
  8. 【数据结构与算法】哈希算法
  9. [剑指offer][JAVA]面试题第[64]题[求1+2+…+n][逻辑运算符]
  10. elementui图片上传php,vue+element-ui+富文本————图片上传