概述

  MongoDB是一个高性能,开源,无模式的文档型数据库,使用C++开发。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json 的bjson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。

  适用场景

  • 网站:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB 搭建的持久化缓存层可以避免下层的数据源过载。
  • 大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
  • 高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
  • 用于对象及JSON数据的存储:MongoDB 的BSON数据格式非常适合文档格式化的存储及查询。

Windows 安装 MongoDB

1.在官网上下载MongoDB:【http://www.mongodb.org/downloads 】选择对应的操作系统。下载来源:zip。

在下载MongoDB for Windows版本时官网会提示:如果您正在运行的版本是Windows Server 2008 R2或Windows 7,请安装修复补丁解决在Windows上使用内存映射文件问题。【补丁

安装包中包括:

Server-mongod.exe

Client -mongo.exe

监控工具- mongostat.exe,mongotop.exe

导入导出工具-mongodump.exe ,mongorestore.exe,mongoexport.exe,mongoimport.exe 等其他工具。

命令启动MongoDB:

在安装MongoDB时需要创建一个目录来存放数据文件。(目录中不要带中文或空格)。cmd,找到下载目录,输入已下命令:mongod --dbpath C:\Test\Data 【安装方法和memcached,Redis差不多】

如果目录中有空格,把整个目录用双引号包括: mongod --dbpath "C:\Program Files\mongodb\data"  。

配置文件启动Mongodb:

我们把Mongodb所需要的配置信息创建一个文件(MongoDB.config)都在这个文件里面。然后启动mongodb读取配置文件信息:config C:\Test\mongodb.config

mongodb.config配置信息:

dbpath=C:\Test\Data
logpath=C:\Test\Log\log.txt

执行读取配置信息如有报错用管理员身份打开cmd命令行。config设置路径中不要包括中文。

测试服务是否启动正常。在浏览器中输入:http://localhost:27017/

证明启动成功。

MongoDB做为Window服务:

把MongoDB做为Window服务操作如图:

进入MongoDB客户端(Shell)。cmd找到安装目录输入:mongo

connection to:test 进入MongoDB客户端自动给我们连接到Test数据库。

MongoDB客户端基本操作

MongoDB创建数据库:

数据库创建语法:

use DATABASE_NAME

新创建的数据库列表为空。要显示数据库,需要把它插入至少一个文件。

insert()基本语法:

db.COLLECTION_NAME.insert(document)

将文档数据存储到"ck_test_db" 数据库中的 "student" 集合中

MongoDB是文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式,BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

find()基本语法:

db.COLLECTION_NAME.find()

find() 方法将在非结构化的方式显示所有的文件。

pretty() 方法:

db.COLLECTION_NAME.find().pretty()

查询条件:

--MongoDB中AND
db.COLLECTION_NAME.find({key1:value1, key2:value2}).pretty() --MongoDB中OR
db.COLLECTION_NAME.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()

要查询文件的一些条件的基础上,可以使用下面的操作

操作 语法 例子 RDBMS 等同
Equality {<key>:<value>} db.mycol.find({"by":"tutorials point"}).pretty() where by = 'tutorials point'
Less Than {<key>:{$lt:<value>}} db.mycol.find({"likes":{$lt:50}}).pretty() where likes < 50
Less Than Equals {<key>:{$lte:<value>}} db.mycol.find({"likes":{$lte:50}}).pretty() where likes <= 50
Greater Than {<key>:{$gt:<value>}} db.mycol.find({"likes":{$gt:50}}).pretty() where likes > 50
Greater Than Equals {<key>:{$gte:<value>}} db.mycol.find({"likes":{$gte:50}}).pretty() where likes >= 50
Not Equals {<key>:{$ne:<value>}} db.mycol.find({"likes":{$ne:50}}).pretty() where likes != 50

update()基本语法:

db.COLLECTION_NAME.update( criteria, objNew, upsert, multi )

update()函数接受以下四个参数:
criteria : update的查询条件,类似sql update查询内where后面的。
objNew : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

删除数据:

--删除指定数据
db.COLLECTION_NAME.remove( DELLETION_CRITTERIA) --删除所有数据
db.COLLECTION_NAME.remove() --删除集合和集合中所有数据
db.COLLECTION_NAME.drop()

drop就不在演示。

MongoDB的一些基本操作本章就分享到这里,下一章节会分享在C#中使用mongodb的一些基本操作。有意可以继续关注噢。

感觉分享的内容对你有一丝丝帮助请点个赞噢...呵呵..

C# mongodb [上]的更多相关文章

  1. (转) Crittercism: 在MongoDB上实现每天数十亿次请求

    MongoDB的扩展能力可以满足你业务需求的增长——这也是为什么它的名字来源于单词humongous(极大的)的原因.当然,这并不是说你在 使用MongoDB的路上并不会碰到一些发展的痛点.Critt ...

  2. django MongoDB上传文件

    django上传文件,查询到的资料都是用的django自己的models.Model类,去定义一个FileField类型的存储文件,并且在里面加一句upload_to,如下所示:   但是如果用mon ...

  3. springboot实现mongodb上传下载

    1.上传: private static Logger log = LoggerFactory.getLogger(MongoDbFSUtil.class); private static final ...

  4. MongoDB上的索引

    1. 将索引建在number键上名为nameIndex并且为正序索引({number:-1}为倒序索引) 如: db.list名.ensureIndex({number:1},{name:" ...

  5. 在 MongoDB 上模拟事务操作来实现支付

    我们的产品叫「学海密探」,属于在线教育行业,产品需要有支付功能,然而支付最蛋疼是什么?有人会说是支付宝和微信等支付接口的接入开发!没错,但支付接口的开发算是比较简单的了,我觉得凡是跟钱有关系的操作最重 ...

  6. 在Windows上安装MongoDB

    原文官方文档:https://docs.mongodb.org/v2.6/tutorial/install-mongodb-on-windows/ 基于版本:MongoDB 2.6 概览 通过这个示例 ...

  7. [Solr] (源) Solr与MongoDB集成,实时增量索引

    一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中,直接向Solr服务发送请求,返回xml.js ...

  8. MongoDB进行MapReduce的数据类型

    有很长一段时间没更新博客了,因为最近都比较忙,今天算是有点空闲吧.本文主要是介绍MapReduce在MongoDB上的使用,它与sql的分组.聚集类似,也是先map分组,再用reduce统计,最后还可 ...

  9. 【MongoDB初识】-其他操作

    又发现一种查询写法$wheredb.class.find({$}}) 排重db.class.distinct("stuCount") 一.MapReduce(摘录MongoDB实战 ...

随机推荐

  1. 如何使用10个小时搭建出个人域名而又Geek的独立博客?

    1.安装准备软件 Node.js.Git.GitHub DeskTop(前两个必须安装,后者可选) 2.本地搭建hexo框架.配置主题.修改参数.实现本地测试预览 3.链接GitHub.实现在线预览 ...

  2. jquery 常见问题--转载

    1 JQuery操作radio     1)获取按钮选中的值:$("input:radio:checked").val();     2)选中或者取消选中某个Radio的方法,可以 ...

  3. ARM你必须知道的事儿——为啥“PC = PC + 8”?

    为啥是“PC = PC + 8”: “PC = PC + 8”其实这样写容易让人蒙了.“PC = PC + 8”真正含义应该是: 执行处代码地址 = PC - 8: 也就是说,”PC指向的地址“领先“ ...

  4. Socket 广播

    1.广播端口 Socket中的广播端口是什么意思,是谁对应谁的? 这个广播端口 指定 客户端接收广播消息时要使用的端口号. 参考: 1.快速Python 原型 2.receive UDP broadc ...

  5. 精简DropDownList用法

    ViewBag.TypeID = new SelectList(db.TType, "ID", "Name", model.TypeID); @Html.Dro ...

  6. pancake的排序- 1.3 一摞烙饼的排序 《编程之美》读书笔记03

    问题:     星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯.程序员多喝了几杯之后谈什么呢?自然是算法问题.有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼.店里的饼大小不一, ...

  7. CICS&&XA

    CICS (Customer Information Control System) 是IBM 公司的强大主机交易服务器.集成平台,在全球C.C++.COBOL等交易中间件市场上占有绝大多数客户.CI ...

  8. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法   单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h" ...

  9. Request.IsLocal与Request.Url.IsLoopback的区别

    均在服务器上访问时: http://localhost:17810 Request.IsLocal => trueRequest.Url.IsLoopback => true http:/ ...

  10. 4.Servlet_Form表单处理

    1.建项目"3Servlet_Form",src下建包“com.amaker.servlet”,web-root下建Register.html <!DOCTYPE html& ...