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展示了基本的数据库操作。

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", );
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. ArcGIS API for JavaScript开发初探——基础知识

    1.前言 在ArcGIS Web API开发体系中一共有四大类,分别为: ArcGIS API for Flex ArcGIS API for JavaScript ArcGIS API for RE ...

  2. Java开发培训基础知识解析之反射机制

    Java是老牌编程语言,是当前应用最广泛的编程语言之一.想要学习Java你就一定要掌握Java基础知识,而反射对于初学Java的人来说绝对是非常重要的知识点.什么是反射?如何理解反射机制?如何使用反射 ...

  3. 【千纸诗书】—— PHP/MySQL二手书网站后台开发之基础知识

    前言: 在具体回顾每一个功能的实现前,还是有必要先温习一些项目涉及到的PHP.MySQL[语法基础].项目github地址:https://github.com/66Web/php_book_stor ...

  4. ArcGIS Engine开发前基础知识(4)

    ArcGIS不同开发方式的比较 关于GIS应用软件的开发,通常有三种方式:C/S架构.网络GIS和移动GIS.ArcGIS平台提供了对三种开发方式的支持,对于采用从C/S架构的大多数开发者来讲,首先想 ...

  5. Unity游戏开发面试基础知识

    面试第一次知识总结: 一.Unity基本操作 1.unity提供哪几种光源? 点光源.平行光.聚光灯.区域光. 2.物体发生碰撞的必要条件什么? 两个物体必须有碰撞体Collider组件,一个物体上必 ...

  6. ArcGIS Engine开发前基础知识(3)

    对象模型图 一.对象模型图中的类与接口 ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承.组合.关联等.对象模型图(Object model diagram,ODM) ...

  7. ArcGIS Engine开发前基础知识(1)

    ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现 ...

  8. Python开发——1.基础知识

    一.开发 开发语言分为高级语言和低级语言 高级语言:Python.Java.PHP.C++.C#.GO.Ruby等:低级语言:C.汇编语言. 高级语言对应的是字节码,是将代码编译成字节码,然后交给机器 ...

  9. android开发学习---基础知识学习、如何导入已有项目和开发一个电话拨号器

    一.基础知识点学习  1.Android体系结构 如图所示,android 架构分为三层: (1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Fl ...

随机推荐

  1. Tesla P4 在深度学习上的性价比辗压目前所有量产的FPGA

    7000的价格, 5.5T FP, 75W不到的功耗,性能接近M40,敢问目前有哪个量产的FPGA能做到?还不算开发和维护的难度...KU115光PCIE+DMA+DDR4 controller+AX ...

  2. Java上面出现这个错误如何解决关于XML的

    Java上面出现这个错误如何解决关于XML的 2015-01-07 14:49 hejiashun11325 | 分类:JAVA相关 | 浏览265次 The type org.xmlpull.v1. ...

  3. boost.numpy编译报错:undefined reference to `PyInt_FromLong' libboost_numpy.so: undefined reference to `PyCObject_AsVoidPtr'

    [ 31%] Built target boost_numpy[ 36%] Building CXX object libs/numpy/example/CMakeFiles/dtype.dir/dt ...

  4. bindActionCreators

    在 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_three_react-redux.html 没有介绍这个,react-red ...

  5. C#中获得机器的字符编码webName信息

    在一次解决编码的问题过程中,发现Encoding.GetEncoding("GB2312") == Encoding.GetEncoding("GBK"),到底 ...

  6. 【英语魔法俱乐部——读书笔记】 1 初级句型-简单句(Simple Sentences)

    第一部分 1 初级句型-简单句(Simple Sentences):(1.1)基本句型&补语.(1.2)名词短语&冠词.(1.3)动词时态.(1.4)不定式短语.(1.5)动名词.(1 ...

  7. 2 Egg Problem

    继续我们的推理问题之旅,今天我们要对付的是一个Google的面试题:Two Egg Problem. 我们开始吧! No.2  Google Interview Puzzle : 2 Egg Prob ...

  8. 高效Web开发的10个jQuery代码片段

    原文转载:http://www.codeceo.com/article/10-jquery-snippets-web-dev.html

  9. spring mvc 第二天【注解实现springmvc Handler处理ajax简单请求 的配置】

    这里使用的是在前台发起ajax请求Handler,后台伪造数据响应给前台, 配置对应ajax请求的Handler信息如下 @Controller public class MyController { ...

  10. oracle 的 nubmer 类型与 C# 的 float double decimal 对应关系

    如果先有oracle 数据的情况下,怎么对应到C#中的类型. 在oralce 中 在dba_tab_columns表中, Data_type表示字段类型:Data_length表示字段类型的长度:Da ...