C# mongodb [上]
概述
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 [上]的更多相关文章
- (转) Crittercism: 在MongoDB上实现每天数十亿次请求
MongoDB的扩展能力可以满足你业务需求的增长——这也是为什么它的名字来源于单词humongous(极大的)的原因.当然,这并不是说你在 使用MongoDB的路上并不会碰到一些发展的痛点.Critt ...
- django MongoDB上传文件
django上传文件,查询到的资料都是用的django自己的models.Model类,去定义一个FileField类型的存储文件,并且在里面加一句upload_to,如下所示: 但是如果用mon ...
- springboot实现mongodb上传下载
1.上传: private static Logger log = LoggerFactory.getLogger(MongoDbFSUtil.class); private static final ...
- MongoDB上的索引
1. 将索引建在number键上名为nameIndex并且为正序索引({number:-1}为倒序索引) 如: db.list名.ensureIndex({number:1},{name:" ...
- 在 MongoDB 上模拟事务操作来实现支付
我们的产品叫「学海密探」,属于在线教育行业,产品需要有支付功能,然而支付最蛋疼是什么?有人会说是支付宝和微信等支付接口的接入开发!没错,但支付接口的开发算是比较简单的了,我觉得凡是跟钱有关系的操作最重 ...
- 在Windows上安装MongoDB
原文官方文档:https://docs.mongodb.org/v2.6/tutorial/install-mongodb-on-windows/ 基于版本:MongoDB 2.6 概览 通过这个示例 ...
- [Solr] (源) Solr与MongoDB集成,实时增量索引
一. 概述 大量的数据存储在MongoDB上,需要快速搜索出目标内容,于是搭建Solr服务. 另外一点,用Solr索引数据后,可以把数据用在不同的项目当中,直接向Solr服务发送请求,返回xml.js ...
- MongoDB进行MapReduce的数据类型
有很长一段时间没更新博客了,因为最近都比较忙,今天算是有点空闲吧.本文主要是介绍MapReduce在MongoDB上的使用,它与sql的分组.聚集类似,也是先map分组,再用reduce统计,最后还可 ...
- 【MongoDB初识】-其他操作
又发现一种查询写法$wheredb.class.find({$}}) 排重db.class.distinct("stuCount") 一.MapReduce(摘录MongoDB实战 ...
随机推荐
- 在ASP.NET中发送电子邮件的实例教程
首先.导入命名空间: 代码如下 复制代码 using System.Net.Mail; 定义发送电子邮件的方法[网上很多不同的,可以对比着看一下,WinForm的也适用]: 代码如下 复制代码 /// ...
- .net 调用webservice 总结
最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice . 我们都知道,调用webserivice 最简单的方法就是在 "引用" ...
- /mnt /media /dev 目录区别
/mnt 是被系统管理员使用,手动挂载一些临时媒体设备的目录. /medai 是自动挂载的目录,比如我们的U盘插在ubuntu下回自动挂载,就会在/media下生成一个目录,这个目录就是U盘所在目录, ...
- Codevs
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 给出n和n个整数,希望你从小到大给他们排序 输入描述 I ...
- ROS ZYNQ移植
1 准备工作 全部是按照官方操作的:http://wiki.ros.org/groovy/Installation/Source apt-get install python-rosdep py ...
- WP开发笔记——页面传参
WP APP页面与页面之间参数的传递可以通过程序的App类设置全局变量. 由于App 类继承自Application类,而通过Application的Current属性可以获取到与当前程序关联的App ...
- linux 安装sysstat使用iostat、mpstat、sar、sa(转载)
使用yum安装 #yum install sysstat sysstat的安装包是:sysstat-5.0.5-1.i386.rpm,装完了sysstat-5.0.5-1.i386.rpm后 就会有i ...
- DIV_ROUND_UP(x,y)实现x/y向上取整
#define DIV_ROUND_UP(x,y) (((x) + ((y) - 1)) / (y)) 1.问题 x.y都是整数,且x > 1, y > 1,求 x / y的向上取整,即: ...
- 基于WORDPRESS+MYSQL的绿色企业主题制作全过程
基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+MYSQL的绿色企业主题制作全过程基于WORDPRESS+M ...
- C++ string的常用功能
头文件为#include<string> string str,str1; char s[]; str.length和str.size()是一样的功能都是返回当前字符串的大小: str.e ...