试水MongoDB
1)安装好后启动mongodb 服务
1_1) 建立data/db ,保证至少有3g大小的盘
1_2) 建立log 文件夹
1_3)配置文件
内容,指定数据存放位置、日志文件位置
dbpath=f:\mongodb\data\db
logpath=f:\mongodb\log\mongo.log
1_3) 指定数据库路径
1_4) 打开
cd/d F:mongdb/bin
Mongod --dbpath=f:\mongodb\data\db
Mongo
2)连接
cd/d F:mongdb/bin
Mongo
查看是否打开成功:
Localhost:27017
3)创建用户
db.addUser(“UserName”,”passwork”,true)
4)Robomongo 登录本地芒果
Localhost:27017
Username:Wgr
Passwork:Wgr123
DB:test
5)插入数据
Var single ={“name”:”wgr”,”address”:”guangzhou longgui”,”favourate”[“apple”,”banana”]}
Db.user.insert(single)
6)查看:
学习地址:
http://www.cnblogs.com/think_fish/p/3422307.html
6_1)等于
Db.user.find({“name”:”wgr”})
6_2)大于
db.user.find({"age":{$gt:30}})
6_3)不等于
$ne 不等于 noe equals
db.collection.find({age:{$ne:18}}) ;//年龄不等于18
6_4)验证一个元素是否存在
这个语法有点绕
db.collection.find({title:{$exists:true}}); //如果记录中有包含title属性的全部返回
db.collection.find({title:{$exists:false}}); //如果记录中有包含title属性的全部不返回,不包含title属性的全部返回
6_5)正则表达式
db.user.find({"name":/W/i})
mongo支持正则表达式,如:
db.customers.find( { name : /acme.*corp/i } ); // 后面的i的意思是区分大小写
支持正则表达式查询让mongDb具有相当强大的查询功能,不过同时需要开发者比较了解正则表达式
6_6)查询数据内的值
下面的查询是查询colors内red的记录,如果colors元素是一个数据,数据库将遍历这个数组的元素来查询。db.things.find( { colors : "red" } );
6_7)$elemMatch
如果对象有一个元素是数组,那么$elemMatch可以匹配内数组内的元素:
> t.find( { x : { $elemMatch : { a : 1, b : { $gt : 1 } } } } )
{ "_id" : ObjectId("4b5783300334000000000aa9"),
"x" : [ { "a" : 1, "b" : 3 }, 7, { "b" : 99 }, { "a" : 11 } ]
}$elemMatch : { a : 1, b : { $gt : 1 } } 所有的条件都要匹配上才行。
注意,上面的语句和下面是不一样的。
> t.find( { "x.a" : 1, "x.b" : { $gt : 1 } } )
$elemMatch是匹配{ "a" : 1, "b" : 3 },而后面一句是匹配{ "b" : 99 }, { "a" : 11 }
测试:
db.user.find({"name":/zhux/i},{"family.son":/xi/i})
db.user.find({"name":/zhux/i},{"family.wife":/peng/i},{"family.son":/xi/i})
6_8) 查询嵌入对象的值
db.postings.find( { "author.name" : "joe" } );
注意用法是author.name,用一个点就行了。更详细的可以看这个链接: dot notation
举个例子:
> db.blog.save({ title : "My First Post", author: {name : "Jane", id : 1}})
如果我们要查询 authors name 是Jane的, 我们可以这样:
> db.blog.findOne({"author.name" : "Jane"})
如果不用点,那就需要用下面这句才能匹配:
db.blog.findOne({"author" : {"name" : "Jane", "id" : 1}})
下面这句:
db.blog.findOne({"author" : {"name" : "Jane"}})
是不能匹配的,因为mongodb对于子对象,他是精确匹配。
6_9) 元操作符 $not 取反
如:
db.customers.find( { name : { $not : /acme.*corp/i } } );db.things.find( { a : { $not : { $mod : [ 10 , 1 ] } } } );
Test
/*var a={"name":"zhuxi","age":60,"family":{"wife":"pengliyuan","son":"xiaoli"}}
db.user.find({"name":/zhux/i},{"family.wife":/peng/i},{"family.son":/xi/i})
db.user.insert(a);
var a={"name":"zhuxi","age":60,"detail":[{"wife1":"pengliyuan"},{"son1":"xiaoli"}]}
db.user.insert(a);
--对象内元素为单元素(数组)的查法
db.user.find({"family.wife":/peng/})
"family" :
{
"wife" : "pengliyuan",
"son" : "xiaoli"
}
--对象内元素为多元素(数组)的查法
db.user.find({"detail":{$elemMatch:{"wife1":/peng/i}}})
"detail" :
[
{
"wife1" : "pengliyuan"
},
{
"son1" : "xiaoli"
}
]
*/
试水MongoDB的更多相关文章
- 试水mongodb er
1)data ready var a = {"name":"zhekou","CharDate":"2015-12-01" ...
- POJ 2502 - Subway Dijkstra堆优化试水
做这道题的动机就是想练习一下堆的应用,顺便补一下好久没看的图论算法. Dijkstra算法概述 //从0出发的单源最短路 dis[][] = {INF} ReadMap(dis); for i = 0 ...
- 大众点评试水O2O新模式:实体店试穿,扫描二维码付款 现场取货
在餐饮美食行业取得不错的成绩之后,大众点评将触角延伸到了线下的传统商铺,开始涉足线下商品的 O2O 团购.和传统的线上下单,线下消费的 O2O 模式不同.大众点评的 O2O 团购用户,可在店内试穿后通 ...
- Json.Net6.0入门学习试水篇
原文:Json.Net6.0入门学习试水篇 前言 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中 ...
- 第一回:Scrapy的试水
前言:今天算是见到Scrapy的第二天,之前只是偶尔查了查,对于这个框架的各种解释,我-----都-----看------不------懂----,没办法,见面就是刚. 目的:如题,试水 目标:< ...
- CSharpGL(49)试水OpenGL软实现
CSharpGL(49)试水OpenGL软实现 CSharpGL迎来了第49篇.本篇内容是用C#编写一个OpenGL的软实现.暂且将其命名为SoftGL. 目前已经实现了由Vertex Shader和 ...
- UITableView(自定义cell)试水心得
初次试水自定义cell的UITableView 实现目标 最终实现结果 界面复原度:98% 未能完全复刻的地方:下半部分的tableview与头部的控件间距上的误差 原因:在做table ...
- 微博试水卖车社交电商怎样令4S“颤抖”?
微博对社交电商的探索一直在深入,年初.微博上线了"支付"产品.从而使社交产业链实现了闭环,随后,微博又尝试售卖多种商品,不断扩大移动电商的试水范围,近期微博大规模汽车销售收 ...
- phaser2->3:来个打地鼠试水
本文中phaser具体版本 phaser2:2.8.1 phaser3:3.17.0 一.实现效果二.实现细节三.项目总结四.参考文档 一.实现效果 源码地址(phaser2&phaser3) ...
随机推荐
- angular.js之路由的选择
在一个单页面中,我们可以添加多个模块,使得网页只在需要的时候加载这个模块.模块的切换大致上可以代替网页的切换,于是,我们便可以通过模块的切换实现网页的切换,这个切换是按需加载的. 乍一看非常普通的东西 ...
- 学习笔记——观察者模式Observer
观察者模式,当事件发生时,调用相应观察者的方法进行“通知”.Subject中使用一个数据结构存储需要通知的观察者对象,执行Notify时,执行所有观察者的Update方法.
- [学习opencv]高斯、中值、均值、双边滤波
http://www.cnblogs.com/tiandsp/archive/2013/04/20/3031862.html [学习opencv]高斯.中值.均值.双边滤波 四种经典滤波算法,在ope ...
- VirtualBox 复制vdi文件和修改vdi的uuid
1.复制vdi文件:VBoxManage clonehd 因为VirtualBox不允许注册重复的uuid,而每个vdi文件都有一个唯一的uuid.所以要想拷贝一份vdi文件再次在VBOX中注册,简单 ...
- memcache command
http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html
- zf-关于即将过期提示字符串的修改
Struts2中的 addFieldError(str1,str2); 自带输出 str1= [str2] 这样子是自带输出的 但是如果 要把=[]替换掉怎么办呢 当时想的很复杂,现在知道了,其实很简 ...
- n皇后问题<dfs>
n皇后问题指的是: n*n的国际象棋棋盘上摆放n个皇后,使其不能互相攻击, 即任意两个皇后都不能处于同一行.同一列或同一斜线上, 问有多少种摆法. 和一般n皇后问题不同的是,现在棋盘上有可能已经放了一 ...
- Naive Bayes在mapreduce上的实现(转)
Naive Bayes在mapreduce上的实现 原文地址 http://www.cnblogs.com/sunrye/p/4553732.html Naive Bayes是比较常用的分类器,因为思 ...
- HDU 2485 Destroying the bus stations
2015 ACM / ICPC 北京站 热身赛 C题 #include<cstdio> #include<cstring> #include<cmath> #inc ...
- 基于Redis的在线用户列表解决方案
前言: 由于项目需求,需要在集群环境下实现在线用户列表的功能,并依靠在线列表实现用户单一登陆(同一账户只能一处登陆)功能: 在单机环境下,在线列表的实现方案可以采用SessionListener来完成 ...