mongo笔记】的更多相关文章

到今天为止,Mongo开发的权限管理系统功能就做完了,剩下的就是完善构架,优化结构,只是现在c#操作Mongo的各种操作基本都掌握了 说到权限管理系统,其实再简单不过了,在关系型数据的是时代,我们通常建一个菜单表,菜单用内建来管理子菜单,然后再建一个角色表(或用户表),然后再建一个角色和菜单的对应关系表,存上菜单id和角色id的对应关系.当然了,方法很多,我只是 举了一个相对比较常见的设计方式. 用上Mongo之后我本来照搬以前的设计思路,完成了权限管理,完成之后突然觉得这样不太好吧.比较Mon…
现在开发的这个项目要用mongo数据库开发,发现网上的这方面教程还是比较少的,只能边看官方说明边进行开发,再开发过程中写下笔记,也算上是一个总结吧. 我开发使用的是vs2013了,驱动用的是最新的1.9.2版本的 网上连接数据库的教程一搜一大堆,我就不多赘述了,只一个写一个连接数据库的方法吧 protected void GetConnection() { //定义Mongo服务 MongoServer mongo = MongoServer.Create("连接字符串"); //打开…
之前写的五篇比较得到了大家的积极反馈,也有个别高手对我写我写出的代码进行了指教. 其中提到的我写的查询方法性能有问题,我想了想,如果mongo不是延时加载的话,那我的查询就真的有问题了,就成了查询出来所有的数据再进行二次筛选了. 可能这也是之前总是使用entity framework框架导致的习惯性这么写了吧.今天赶紧进行了一下代码,现在贴出来一下,省的之前的错误写法误导了大家,再此也感谢大家对我的批评指正 public static User GetById(ObjectId id) { Mo…
今天是个伟大的日子,不得不说小苹果的歌词真是深入人心啊. 不过今天伟大并不是因为我种下一颗种子,而是我从今天不再写demo,而是进入项目的正式开发当中,毕竟项目时间有限(想必各位码农也都深有体会吧),边开发边探索吧. 既然是刚刚开始,就先搭了一下系统框架,然后,做了一个登陆功能,和一个登陆日志功能 public class Log { public ObjectId Id { get; set; } public string Abstract { get; set; } public stri…
今天主要测试了一下查询功能了,当然了主要还是为了让查询可以和我们平时使用的实体对象关联起来,并且 那些BsonDocument和Collection我们操作起来不是太方便的 还是首先定义了一个用户类,注意这个类需要和mongo中的对象的字段完全匹配,包括大小写,不然查询的时候会出现字段无法匹配的错误 public class User { public ObjectId Id { get; set; } public string Name { get; set; } public int Ag…
写到第二篇不得不说是我之前犯了一个小错误,其实实现子表存储也是很简单的事,先说我想实现什么样的效果吧 就是用户表里有个成绩字段,成绩字段是个子表 其实实现这个功能也很简单,用面向对象的思想很好理解,子表就是user表的一个对象字段或者集合字段,所以我觉得用c#开发Mongo用面向对象的思想开发更合适一些 public class User { public ObjectId Id { get; set; } public string Name { get; set; } public stri…
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] mongodb:// 这是固定的格式,必须要指定. username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库 host1 必须的指定至少一个host, host1 是这个URI唯一要填写的.它指定了要连接服务器的地址.如果要连接复制集,请指定多…
用skip略过少量的文档还是不错的.但是要是数量非常多的话,skip就会变得很慢,因为要先找到需要被略过的数据,然后再抛弃这些数据.大多数数据库都会在索引中保存更多的元数据,用于处理skip, 但是mongoDB目前还不支持,所以要尽量避免略过太多的数据 .通常可以利用上次的结果来计算下一次的查询条件. 最简单的分页方法就是用limit返回结果的第一页,然后将每个后续页面作为相对开始的偏移量返回. 比如var page1=db.Log.find(query).skip(100).limit(10…
开发到这里遇到了一些问题,哪到这里想请教一下大家 今天我完成的是菜单功能, public class Menu { public ObjectId _id { get; set; } public int MenuId { get; set; } public string Name { get; set; } public int ParentId { get; set; } public string Url { get; set; } public string Icon { get; s…
现在增删查改算是都完成了,但是查询算是有点不完美的,相信现在用juqeryeasyui这一类的插件的人应该也不少吧,这样的话前台展示需要JSON格式的数据, 好在mogno驱动提供toJson()的函数,但是却无法在前台显示,不知道是不是objectid导致的,下面是我通过firebug看到的请求数据. {","rows":[{ "_id" : ObjectId("545c395937d9dc8a18f0c51a"), "Us…
速度和持久性 用户可以选择写入语义,决定是否开启journaling日志记录,通过这种方式来控制速度和持久性的平衡,默认情况下写入都是fire-and-forget,写操作通过tcp套接字发送,不要求数据库应答.如果需要用户获得应答,可以使用特殊的安全模式发起写操作,该模式强制数据库做出应答,确保数据库正确无误的接收到了写入操作,安全模式可配置,还可以用于阻塞操作,知道写入操作被复制到特定数量的服务器上. 2.9默认开始journaling日志,这样所有的写操作都会被提交到一个只能追加的日志里,…
获取stats from pymongo import MongoClient client = MongoClient() db = client.test # print collection statistics print db.command("collstats", "events") print(db.command("collstats", "messages")["storageSize"…
首先来了解下什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 主要特点 MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易. 你可…
回到目录 一些概念 对于Mongo在数据容灾上,推荐的模式是使用副本集模式,它有一个对外的主服务器Primary,还有N个副本服务器Secondary(N>=1,当N=1时,需要有一台仲裁服务器Arbiter,当N>1时不需要Arbiter),它们之前是通过内部机制实现同步的,并且当Primary挂了后,它会通过内部的心跳机制,选举别一台Secondary成为一个Primary,与外界(Route)进行通讯. 工业标准 在标准上,我们的副本集推荐使用奇数个服务器(3,5,7,9),但经过我的测…
linux分以下几台 monogos mongocfg mongod1 mongod2 1.用ssh把 mongodb-linux-x86_64-3.0.6.tgz 移到linux /root上 2.解压到/root/mongodb-3.0.6/ tar zxf mongodb-linux-x86_64-.tgz 3.添加data和log文件夹 mkdir date mkdir log 4.在log文件夹中添加logs.log touch logs.log 5.创建文件/root/mongodb…
分片  人脸:       代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的. mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合.... 好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据 和片的对应关系以及相应的配置信息保存在"config服务器"上. mongod:   一个普通的数据库实例,如果不分片的话,我们会直接连上mongo…
mysql语句 : ' ,,),(,,)   mongo语句: db.}}).limit() db."}) db.}}) 条件操作符1 mongodb中的条件操作符有: (>) 大于 - \$gt #greate (<) 小于 - \$lt #low (>=) 大于等于 - \$gte #equal (<= ) 小于等于 - \$lte 范例: > db.shiyanlou.find({user_id:{$gt:1}}) > db.shiyanlou.find…
OS环境: Centos 7.1 release X86_64 编译环境: G++ 4.8.3 已经成功搭建好了Mongodb,也初步在命令行中的查询与写入数据的基本方法,现在通过C++来连接Mongodb. 1.准备工作 (1).在官网中下载mongodb的C++ driver 官方文档说明: https://github.com/mongodb/mongo-cxx-driver/wiki/Download-and-Compile-the-Legacy-Driver 值得注意的是,上方文档说明…
成功运行起来mongo之后,进入了命令行模式,mongo默认会选择test数据库 1. 使用db命令打印出来当前选定的数据库: > db test 2. 使用show dbs 命令可以打印出数据库列表 > show dbs local 0.078GB 3. 使用use [dbname] 可以切换数据库 > use local switched to db local 试着使用db命令打印一下确认是不是在local数据库: > db local 使用use 命令的时候 即使是use…
手上的工作不是很忙,所以来学习学习很久就像接触的MongoDb,无奈前段时间工作时间都比较多.记录在这里供以后参考 环境: Centos 7 64位 开始: 1. 在官网下载Mongo : wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.0.3.tgz tar -zxvf mongodb-linux-x86_64-rhel70-3.0.3.tgz  在bin文件下有13个可执行程序. 其中./mongo为命令…
-背景: 鉴于我们使用mongo作为数据库,期间少不了需要添加索引和对业务表进行设计.因此以下我对mongo索引及表设计原则做了一些分享.希望对大家有用,如有错误还望指正~ MongDB的索引类型简介: -单键索引.复合索引.多键索引.地理空间索引.全文本索引和哈希索引 1,单建索引 db.table.createIndex({"user_id":1}) 1:升序 -1:降序 使用说明:只要查询中包含user_id即可使用索引 无论是在find条件中 还是在sort中 1,-1都会使用…
安装和开始 下载 MongoDB 参考:+MongoDB安装配置(Windows) +Mongo手册…
mongo简介 非结构化数据库,数据都是以Bson格式(json的二进制)存储的. 特点:不需要指定表结构,存在一张表里的数据其结构可以完全不同.内部执行引擎为JS解释器, 把文档存储成bson结构,在查询时,转换为JS对象,并可以通过熟悉的js语法来操作. 应用场景举例:类似网易云音乐一个音乐下有很多评论,评论之间又可以互相评论,评论下还可以点赞.这样的数据结构如果是按照关系型数据库,可能需要电影表,评论表,点赞表,用户表他们之间又有1对多和多对多的关系,这会造成复杂的查询.而在mongo中可…
mongo   进入数据库, exit 退出 show dbs 查数据库 db.createCollection('stu')  创建一个集合, > use binbinswitched to db binbin> db.createCollection('stu'){ "ok" : 1 }> show dbsadmin (empty)binbin 0.078GBlocal 0.078GB 在 use binbin 时,是伊娃并进入该数据库, 只有该数据库中有数据时…
  Mongo有多种类型的collection, 默认的是随着document 数目的增多自动增大; 还有一些collection被称为capped collection, 只能包含固定数目的document, 当向里面添加document时, 最老的文档就会被新加的文档替换. 每个mongo collection都有唯一的名字,名字可以包含数字,letter和下划线,但$符不能用,是mongo保留字符.Collection的名字的最大允许长度是128,. 每个Mongo数据库默认最多允许240…
  一个Mongo文档最大4M. GridFS不依赖于MongoDB, 其他符合规范的驱动都可以访问它. GridFS包含两部分:一部分存储文件名和其他metadata; 另一部分存储实际的文件,通常分成一个个大小为256k的小块. 这两个部分通常被命名为files和chunks,在fs命名空间下,当然,这些都可以通过配置来更改.当你想区分不同的文件类型时,比如区分图片和视频,使用不同的命名空间是有用的. Mongofiles工具: 列出mongofiles. mongofiles list 如…
1. 通过Java based bean metadata @Configuration public class AppConfig { public @Bean Mongo mongo() throws UnknownHostExceptioin { return new Mongo("localhost"); } } 上面的方式包含异常处理,这并不是我们想要的. 所以,应该尽量用下面这种方式MongoFactoryBean,或者后面的xml方式. @Configuration p…
最近MongoDb服务器负载比较高,容易出问题,这里把优化的方式整理一下. 1.由于各个项目组共用一个mongo实例,所以一个项目组的问题会影响到别的项目组,所以需要把各个项目的数据从一个实例中剥离出来. 2.根据请求接口的时间,数量,排查代码上的相关问题,重复查询.查询是否中索引.多次小量数据查询.mongo排序等. 3.优化索引,注意的是创建索引是一个比较重要的事情,如果数据量大,不想影响线上业务,要后台创建索引,在副本集上后台创建索引,primary是没问题的,secondary在同步索引…
在linux下的安装 打开https://www.mongodb.com/download-center#community选择linux然后选择自己的Version复制DOWNLOAD旁边的链接 打开终端输入 wget 链接 接下来解压 tar -zxvf 下载的文件名 移动到指定目录 mv 解压出来的文件名 /usr/local/mongodb 添加到PATH路径中 Ubuntu中 Vim ~/.bashrc 在最后添加 export PATH=/usr/local/mongodb/bin:…
性能测试: 竟然用了30秒.... 如果使用mongo 客户端只有1-2秒 感觉Drill是把数据拉过来再进行sql优化,并没有使用Mongo的API,效率低下让人失望...…