进入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. Idea1.5使用Maven搭建Apache Spark1.6源码阅读环境

    1.插件安装,在Idea界面依次:File->settings->plugins,安装Maven 2.下载Spark1.6.2源码,这个在GitHub上下载,具体流程自己百度,很简单 3. ...

  2. $(#form :input)与$(#form input)的区别

    相信大家都很奇怪这两者的区别 我从两个方面简单介绍下 1. $("form :input") 返回form中的所有表单对象,包括textarea.select.button等    ...

  3. RF接口测试本地环境部署

    ##1 Python环境及robotframework安装 ###1.1 安装python 2.7.9(自带pip) + 下载python,双击msi文件安装 >https://www.pyth ...

  4. 第九十二节,html5+css3移动手机端流体布局,开篇知识

    html5+css3移动手机端流体布局,开篇知识 将项目设计成移动端可访问的页面,项目采用的是流体布局.也就是宽度以百分比自适应的,因为手机的屏幕大小不一致  一.整体设计     首先 我们要了解一 ...

  5. Arrays.toString(a)--->将数组a的值转换为字符串

    Arrays.toString(数组)是java内置类Arrays类的一个方法,具体查Api可知.因为数组是不可直接输出的,它的作用是将数组转换为字符串.其实用for循环也是可以做到的,只不过比for ...

  6. redis :初步使用

    redis : 1.ubuntu安装  'pip install redis-server' 2.启动    'redis-cli' 3.使用 set:  set a 1 get:  get a fl ...

  7. 查看mms UA/profile

    查看彩信的UA/profile信息,当然可以通过打印log来看. 但还有一个比较简便的方法: 直接抓取一个MMS包,用网络包分析工具打开,找到承载该MMS信息的HTTP协议包即可查看:

  8. WinHex V18.7(16进制编辑器) 多国语言绿色版

    软件名称: WinHex V18.7(16进制编辑器)软件语言: 简体中文授权方式: 免费试用运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 1.7MB图片预览: ...

  9. 网页 HTML表单

    今天,我首先先学习了图片热点和在原来页面嵌入其他页面. 图片热点:<img src="" usemap="#ditu"/> <map name ...

  10. 启动tomcat时报错:java.lang.OutOfMemoryError: PermGen space

    1.修改myeclipse.ini 在Myeclipse安装目录下G:\MyEclipse8.5\Genuitec\MyEclipse 8.5有一个myeclipse.ini配置文件,设置如下: -v ...