进入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的更多相关文章

  1. Mongo DB 初识

    前言 2016年伊始,开始研究NoSql.看了couchdb,cloudant,cassandra,redis.却一直没有看过排行榜第一的mongo,实属不该.近期会花时间研究下mongo.本文是初识 ...

  2. Java游戏服务器成长之路——你好,Mongo

    关于mongo的思考 第一阶段的弱联网游戏已基本完成,截至今天下午,测试也基本差不多了,前端还有一些小bug需要优化,接下来会接入小米,360,百度,腾讯等平台,然后推广一波,年前公司还能赚一笔,而我 ...

  3. 二、Mongo命令初识

    简单介绍mongo的一些基本命令 1.   连接与登陆mongo 在命令行输入“mongo”命令即可登陆Mongo数据库(PS:默认讨论被信任的环境,也就是不需要用户名和密码进行登陆). 查看当前所使 ...

  4. MongoDB【第一篇】MongodDB初识

    NoSQL介绍 一.NoSQL简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库. 非关系型数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的. 原始的目的是为 ...

  5. 初识MongoDB

    1. 初识 接触MongoDB,是由于最近在工作中用到了MongoDB做数据存储.之前也听说过这个NoSQL数据库,但是一直没有尝试去使用它做开发.这次趁着这个机会,想好好学习下这个NoSQL数据库. ...

  6. Mongo 整体架构介绍(1)-------分片集群

    摘要 在mongo初识文中介绍了mongo与cassandra的主要区别,以及mongo物理部署架构图.本文接着上一篇的mongo 架构图,来继续讲分片集群. 分片介绍 shard key mongo ...

  7. cassandra vs mongo (1)存储引擎

    摘要 在MongoDB 初识篇中谈到过Mongo 与 Cassandra的区别,这边再谈谈Mongo与Cassandra的存储引擎差别 概括 存储引擎: 类型 功能 应用 hash 增删改.随机读.顺 ...

  8. flask 第七章 简陋版智能玩具 +MongoDB初识和基本操作

    1.简陋版web智能玩具 FAQ.py文件 import os from aip import AipSpeech, AipNlp from uuid import uuid4 "" ...

  9. python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)

    一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...

随机推荐

  1. android 进程和线程管理

    进程和线程的概念: 进程:程序的运行实例. 线程:cpu调度基本单位. Activity启动的时候,启动一个主线程,两个binder线程. 主线程实如何产生的?ZygoteInit启动,经由一系列调用 ...

  2. centsOS下安装vsftp的配置

    1. 添加用户组 # groupadd www 2. 修改配置 # vi /etc/vsftpd/vsftpd.conf 查找: #chroot_list_enable=YES #chroot_lis ...

  3. CodeForces 703C Chris and Road

    数学,递推. 不知道有没有更加神奇的做法,我是这样想的: 首先,如果多边形完全在$y$轴左侧,那么答案为$\frac{w}{u}$. 剩下的情况就要先判断是否能在车开过之前跑过去,如果跑不过去,要在车 ...

  4. hdu 3986 Harry Potter and the Final Battle

    一个水题WA了60发,数组没开大,这OJ也不提示RE,光提示WA...... 思路:先求出最短路,如果删除的边不是最短路上的,那么对结果没有影响,要有影响,只能删除最短路上的边.所以枚举一下最短路上的 ...

  5. bootstrip 折叠菜单

    body { font-family: "宋体"; font-size: 12px } .menu { height: 30px; background: #e6e6e6; mar ...

  6. linux版本选择

    桌面系统           -- Ubuntu,开发人员也喜欢用Ubuntu 服务器端           -- RHEL或CentOS,RHEL要钱 对安全要求很高  -- Decian或Free ...

  7. .parents() 与 .parent()对比

    今天使用jQuery时候需要用到parents()方法,css()方法的使用 现在只是知道可以取到父级DOM节点,研究是否可以通过选取class名或者id名进行选取. 取到父级DOM节点 $(e.sr ...

  8. Java 泛型 泛型方法

    Java 泛型 泛型方法 @author ixenos 泛型方法可以定义在普通类中,也可以定义在泛型类中 类型变量放在修饰符(如public static)后面,返回类型的前面 一个static方法无 ...

  9. 浙大pat 1011题解

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  10. ubuntu 14.04 GDAL

    autotools-dev comerr-dev hdf5-helpers icu-devtools krb5-multidev libarmadillo4 libarpack2 libblas3 l ...