初识mongo
进入mongo
/usr/local/mongodb/bin/mongo --host 10.1.1.111:
查看所有db
show dbs
查看当前进入的db
db
查看当前db的所有collection
show collections
创建collection(table)
db.createCollection("myindex", {size:,capped:true,max:})
删除collection
db.mytable.drop();
新增一条记录
db.myindex.insert({'uid':,'username':'admin'})
查看
http://docs.mongodb.org/manual/reference/method/db.collection.find/
http://docs.mongodb.org/manual/tutorial/query-documents/
http://www.cnblogs.com/TankMa/archive/2011/06/08/2074947.html
http://codefather.pl/post/1369797147/nosql-no-problem-norm-and-mongodb-tutorial
原型find($where, $field)
$where表示条件
$field表示选择哪些字段
返回值是cursor,中文翻译为游标 查看所有的条目
db.myindex.find()
根据条件查询:
db.storage_soft.find({'soft_id':2});
根据条件查询只选择某些字段:
db.storage_soft.find({'soft_id':2}, {'soft_download_times':1}); skip && limit
查询第1条记录:
db.storage_soft.find().limit(1);
查询前N条记录:
db.storage_soft.find().limit(N);
skip:查询soft_id大于2的情况下,跳过前10个,取第10+1,到10+N个,相当于limit 10,1
> db.storage_soft.find({'soft_id':{'$gt':2}},{'soft_id':1}).skip(10).limit(1);
{ "_id" : ObjectId("534f674d0114e67f4d000322"), "soft_id" : 20 }
sort函数
降序:
db.storage_soft.find({},{'soft_id':1}).sort({soft_id:-1}).limit(1);
升序:
db.storage_soft.find({},{'soft_id':1}).sort({soft_id:1}).limit(1); distinct
> db.storage_soft.runCommand({'distinct':'storage_soft', 'key':'soft_status',query:{'soft_id':{'$gt':0,'$lt':10}}});
{
"values" : [
1
],
"stats" : {
"n" : 7,
"nscanned" : 25297,
"nscannedObjects" : 25297,
"timems" : 123,
"cursor" : "BasicCursor"
},
"ok" : 1
}
http://docs.mongodb.org/manual/reference/command/distinct/
关于find的where条件
相等:db.storage_soft.find({'soft_id':1},{'soft_id':1});
大于:{'soft_id':{'$gt':1}}
db.storage_soft.findOne({'soft_id':{'$gt':1}},{'soft_id':1});
小于:{'soft_id':{'$lt':10}}
db.storage_soft.findOne({'soft_id':{'$lt':10}},{'soft_id':1});
大于等于:{'soft_id':{'$gte':1}}
小于等于:{'soft_id':{'$lte':10}} $ne:不等
{'soft_id':{'$ne':1}
$eq:没有这个操作
> db.storage_soft.find({'soft_id':{'$eq':1}}).limit(1);
error: { "$err" : "invalid operator: $eq", "code" : 10068 }
$in: 软件id为in列表中的其中一个值
{'soft_id':{'$in':[1,2,3]}}
错误:{'soft_id':{'$in':1}}
$nin: 软件id均不等于in列表中的任何一个值
{'soft_id':{'$in':[1,2,3]}}
$all: 几个条件必须同时满足
db.storage_soft.find({'soft_prev_baoku_subcate_id':{'$all':['173','172']}},{'soft_id':1}).count();
http://docs.mongodb.org/manual/reference/operator/query/all/ $exists: 某个字段是存在的
如果某条记录上的soft_prev_baoku_subcate_id的值是null,那么用$exists:true查询,这条记录是符合条件的
某条记录上的soft_prev_baoku_subcate_id这个字段不存在,用$exists:true查询,这条记录不满足条件,也不会被查到
db.storage_soft.find({'soft_prev_baoku_subcate_id':{'$exists':true}},{'soft_id':1}).count();
http://docs.mongodb.org/manual/reference/operator/query/exists/ 多个查询条件
或:软件id或者为1,或者为10
{'$or':[{'soft_id':1},{'soft_id':10}]}
且:软件id为1,并且为10
{'$and':[{'soft_id':1},{'soft_id':10}]} 且:软件id大于1,并且小于5
> db.storage_soft.find({'$and':[{'soft_id':{'$gt':1}},{'soft_id':{'$lt':5}}]},{'soft_id':1});
{ "_id" : ObjectId("534f674b0114e67f4d000121"), "soft_id" : 2 }
{ "_id" : ObjectId("534f674c0114e67f4d00015b"), "soft_id" : 3 }
{ "_id" : ObjectId("534f674c0114e67f4d000166"), "soft_id" : 4 }
且,且:软件id大于1,并且软件id小于5,并且软件状态为1
> db.storage_soft.find({'$and':[{'soft_id':{'$gt':1}},{'soft_id':{'$lt':5}},{'soft_status':1}]},{'soft_id':1,'soft_status':1});
{ "_id" : ObjectId("534f674b0114e67f4d000121"), "soft_id" : 2, "soft_status" : 1 }
{ "_id" : ObjectId("534f674c0114e67f4d00015b"), "soft_id" : 3, "soft_status" : 1 }
{ "_id" : ObjectId("534f674c0114e67f4d000166"), "soft_id" : 4, "soft_status" : 1 }
$regex 正则匹配:软件名中带有“abc”的软件
db.storage_soft.find({'soft_name':{'$regex':'test'}},{'soft_id':1}).count();
正则匹配:软件名中带有“abc”,但不区分大小写
db.storage_soft.find({'soft_name':/test/i},{'soft_id':1}).count();
i模式表示大小写不敏感。
正则匹配:软件名中带有“abc”,但需区分大小写
db.storage_soft.find({'soft_name':/test/},{'soft_id':1}).count();
http://docs.mongodb.org/manual/reference/operator/query/regex/
子字段subfield:edition_plugin字段的flag字段为'2'
db.storage_soft_edition.findOne({'edition_plugin.flag':'2'});
某个字段中可以存多个值,其中一个值命中了,就被选出来
db.storage_soft.find({'soft_prev_baoku_subcate_id':{'$in':['172']}},{'soft_id':1}).count();
> db.storage_soft.find({'soft_prev_baoku_subcate_id':{'$in':['172']}},{'soft_id':1,'soft_prev_baoku_subcate_id':1});
{ "_id" : ObjectId("534f674a0114e67f4d000000"), "soft_id" : NumberLong(1), "soft_prev_baoku_subcate_id" : [ "172" ] }
{ "_id" : ObjectId("534f674b0114e67f4d000121"), "soft_id" : 2, "soft_prev_baoku_subcate_id" : [ "172", "173" ] }
某个字段只有一个值,但我给出多个值,只要这个字段和其中的一个值相等,就被选出来
> db.storage_soft.find({'soft_id':{'$in':[1,2,3]}},{'soft_id':1});
{ "_id" : ObjectId("534f674a0114e67f4d000000"), "soft_id" : NumberLong(1) }
{ "_id" : ObjectId("534f674b0114e67f4d000121"), "soft_id" : 2 }
{ "_id" : ObjectId("534f674c0114e67f4d00015b"), "soft_id" : 3 }
更新记录
http://docs.mongodb.org/manual/reference/method/db.collection.update/
db.myindex.update({'username':'admin'},{'$set':{'uid':}},false)
db.collection.update(
<query>,
<update>,
{
upsert: <boolean> = false,
multi: <boolean> = false,
writeConcern: <document>
}
)
db.storage_soft_cate.update({cate_id:191}, {$set:{cate_id:167}})
db.storage_soft_cate.find({'cate_id':167});
db.storage_soft_cate.find({"_id":"534f69260114e67f4d01f456"}) db.storage_soft.update({'_id':ObjectId('534f674b0114e67f4d000121')}, {'$set':{'soft_download_times':1}}, false);
db.storage_soft.find({'_id':ObjectId('534f674a0114e67f4d000000')});
删除记录
db.myindex.remove({'uid':},true)
db.collection.remove(
<query>,
<justOne>
)
can't remove from a capped collection
查看当前table的collection条目数
db.myindex.count()
创建索引
> db.myindex.ensureIndex({'uid':})
查看索引
> db.myindex.getIndexes();
[
{
"v" : ,
"key" : {
"_id" :
},
"ns" : "test_2.myindex",
"name" : "_id_"
},
{
"v" : ,
"key" : {
"uid" :
},
"ns" : "test_2.myindex",
"name" : "uid_1"
},
{
"v" : ,
"key" : {
"uid" : -
},
"ns" : "test_2.myindex",
"name" : "uid_-1"
}
走索引
> db.myindex.find({'uid':}).explain()
{
"cursor" : "BtreeCursor uid_1",
"isMultiKey" : false,
"n" : ,
"nscannedObjects" : ,
"nscanned" : ,
"nscannedObjectsAllPlans" : ,
"nscannedAllPlans" : ,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : ,
"nChunkSkips" : ,
"millis" : ,
"indexBounds" : {
"uid" : [
[
, ]
]
},
"server" : "corp:2"
}
不走索引
> db.myindex.find({'username':}).explain()
{
"cursor" : "ForwardCappedCursor",
"isMultiKey" : false,
"n" : ,
"nscannedObjects" : ,
"nscanned" : ,
"nscannedObjectsAllPlans" : ,
"nscannedAllPlans" : ,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : ,
"nChunkSkips" : ,
"millis" : ,
"indexBounds" : { },
"server" : "fet:2"
}
按条件查询操作
相等
> db.myindex.find({'uid':})
{ "_id" : ObjectId("525fc1d78a7af6409b333a4a"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fc1ec8a7af6409b333a4b"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fcab28a7af6409b333a4c"), "uid" : , "username" : "admin2" }
大于
> db.myindex.find({'uid': {$gt: }} )
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
多个条件与
> db.myindex.find({'uid': {$gt: }, 'username':'admin3'} )
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
查看所有元素
> db.myindex.find()
{ "_id" : ObjectId("525fc1d78a7af6409b333a4a"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fc1ec8a7af6409b333a4b"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fcab28a7af6409b333a4c"), "uid" : , "username" : "admin2" }
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
in操作
> db.myindex.find({'uid':{$in:[,]}})
{ "_id" : ObjectId("525fc1d78a7af6409b333a4a"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fc1ec8a7af6409b333a4b"), "uid" : , "username" : "admin" }
{ "_id" : ObjectId("525fcab28a7af6409b333a4c"), "uid" : , "username" : "admin2" }
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
range操作
> db.myindex.find({'uid':{$gt:,$lt:}})
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
or操作
> db.myindex.find({'$or':[{'username':'admin2'},{'username':'admin3'}]})
{ "_id" : ObjectId("525fcab28a7af6409b333a4c"), "uid" : , "username" : "admin2" }
{ "_id" : ObjectId("525fcac28a7af6409b333a4d"), "uid" : , "username" : "admin3" }
删除操作 remove
db.storage_soft.remove({soft_id:{"$gt":}})
初识mongo的更多相关文章
- Mongo DB 初识
前言 2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该.近期会花时间研究下mongo.本文是初识 ...
- Java游戏服务器成长之路——你好,Mongo
关于mongo的思考 第一阶段的弱联网游戏已基本完成,截至今天下午,测试也基本差不多了,前端还有一些小bug需要优化,接下来会接入小米,360,百度,腾讯等平台,然后推广一波,年前公司还能赚一笔,而我 ...
- 二、Mongo命令初识
简单介绍mongo的一些基本命令 1. 连接与登陆mongo 在命令行输入“mongo”命令即可登陆Mongo数据库(PS:默认讨论被信任的环境,也就是不需要用户名和密码进行登陆). 查看当前所使 ...
- MongoDB【第一篇】MongodDB初识
NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...
- 初识MongoDB
1. 初识 接触MongoDB,是由于最近在工作中用到了MongoDB做数据存储.之前也听说过这个NoSQL数据库,但是一直没有尝试去使用它做开发.这次趁着这个机会,想好好学习下这个NoSQL数据库. ...
- Mongo 整体架构介绍(1)-------分片集群
摘要 在mongo初识文中介绍了mongo与cassandra的主要区别,以及mongo物理部署架构图.本文接着上一篇的mongo 架构图,来继续讲分片集群. 分片介绍 shard key mongo ...
- cassandra vs mongo (1)存储引擎
摘要 在MongoDB 初识篇中谈到过Mongo 与 Cassandra的区别,这边再谈谈Mongo与Cassandra的存储引擎差别 概括 存储引擎: 类型 功能 应用 hash 增删改.随机读.顺 ...
- flask 第七章 简陋版智能玩具 +MongoDB初识和基本操作
1.简陋版web智能玩具 FAQ.py文件 import os from aip import AipSpeech, AipNlp from uuid import uuid4 "" ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
随机推荐
- 【JS】学习18天Jquery Moblie的总结笔记。
现在是2013年11月18日1:53分,从1号开始学习JqueryMoblie(简称JQM),这些天遇到的问题,和走的弯路还真不少. 先做个小总结,做了那么多天的一些收获: ●JQM是一个手机网站/轻 ...
- Convert a byte[] array to readable string format. This makes the "hex" readable!
/* * Java Bittorrent API as its name indicates is a JAVA API that implements the Bittorrent Protocol ...
- Finish and error to: Error Domain=NSURLErrorDomain Code=-1001 "请求超时。
错误显示:Finish and error to: Error Domain=NSURLErrorDomain Code=-1001 "请求超时." UserInfo={NSUnd ...
- Android app作为系统应用实现功能笔记
1.禁用StatusBar相关功能需要添加权限 <uses-permission android:name="android.permission.STATUS_BAR"&g ...
- JavaScript 运动框架 Step by step(转)
1,运动原理 Js运动,本质来说,就是让 web 上 DOM 元素动起来.而想要 DOM 动起来,改变其自身的位置属性,比如高宽,左边距,上边距,透明度等.动画的原理就是把不同状态的物体,串成连续的样 ...
- Java中的DateFormatter
字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul;07 w 年中的周数 Number 27 W ...
- <? extends T>和<? super T>
转自:Java泛型中extends和super的区别? 另,问题来源:Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? <? ext ...
- display: inline-block兼容性写法
display:inline-block;*display:inline;*zoom:1;
- sql 多个字段排序,头一个字段排序完,再对第二个字段进行排序(以此类推)
现根据num排序,num数字相同的根据时间进行排序,都是降序DESC SELECT * FROM counts ORDER BY num DESC,create_time DESC
- webpack-hot-middleware 用于 livereload
https://github.com/glenjamin/webpack-hot-middleware Webpack hot reloading using only webpack-dev-mid ...