创建数据库

>use mydb
switched to db mydb 

查看所有的数据表

>show collections
 system.indexes

创建数据表

>db.createCollection("tb_user")
{"ok":}
> db.createCollection("Test",{capped:true, size:10000})
{ "ok" : 1 } {"ok":1}

-- 说明

capped:true,表示该集合的结构不能被修改;

size:在建表之初就指定一定的空间大小,接下来 的插入操作会不断地按顺序APPEND数据在这个预分配好空间的文件中,如果已经超出空间大小,则回到文件头覆盖原来的数据继续插入。这种结构保证了插入 和查询的高效性,它不允许删除单个记录,更新的也有限制:不能超过原有记录的大小。这种表效率很高,它适用于一些暂时保存数据的场合,比如网站中登录用户 的session信息,又比如一些程序的监控日志,都是属于过了一定的时间就可以被覆盖的数据。

修改数据表名

 >db.tb_user.renameCollection("tb_user1")
{"ok":}  

数据表帮助主题help

> db.Account.help()

DBCollection help
        db.Account.find().help() - show DBCursor help
        db.Account.count()
        db.Account.dataSize()
        db.Account.distinct( key ) - eg. db.Account.distinct( 'x' )
        db.Account.drop() drop the collection
        db.Account.dropIndex(name)
        db.Account.dropIndexes()
        db.Account.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups
        db.Account.reIndex()
        db.Account.find([query],[fields]) - query is an optional query filter. fields is optional set of fields to return.
                                                      e.g. db.Account.find( {x:} , {name:, x:} )
        db.Account.find(...).count()
        db.Account.find(...).limit(n)
        db.Account.find(...).skip(n)
        db.Account.find(...).sort(...)
        db.Account.findOne([query])
        db.Account.findAndModify( { update : ... , remove : bool [, query: {}, sort: {}, 'new': false] } )
        db.Account.getDB() get DB object associated with collection
        db.Account.getIndexes()
        db.Account.group( { key : ..., initial: ..., reduce : ...[, cond: ...] } )
        db.Account.mapReduce( mapFunction , reduceFunction , <optional params> )
        db.Account.remove(query)
        db.Account.renameCollection( newName , <dropTarget> ) renames the collection.
        db.Account.runCommand( name , <options> ) runs a db command with the given name where the first param is the collection name
        db.Account.save(obj)
        db.Account.stats()
        db.Account.storageSize() - includes free space allocated to this collection
        db.Account.totalIndexSize() - size in bytes of all the indexes
        db.Account.totalSize() - storage allocated for all data and indexes
        db.Account.update(query, object[, upsert_bool, multi_bool])
        db.Account.validate() - SLOW
        db.Account.getShardVersion() - only for use with sharding

查询一条记录

> db.Account.findOne()
{
        "_id" : ObjectId("4ded95c3b7780a774a099b7c"),
        "UserName" : "libing",
        "Password" : "1",
        "Email" : "libing@126.cn",
        "RegisterDate" : "2011-06-07 11:06:25"
}

--SELECT TOP 1 * FROM Account

查询聚集中字段的不同记录

> db.Account.distinct("UserName")

--SELECT DISTINCT("UserName")  FROM Account

查询聚集中UserName包含“keyword”关键字的记录

db.Account.find({"UserName":/keyword/})

--SELECT * FROM Account WHERE UserName LIKE '%keyword%'

查询聚集中UserName以"keyword" 开头的记录

> db.Account.find({"UserName":/^keyword/})

--SELECT * FROM Account WHERE UserName LIKE 'keyword%'

查询聚集中UserName以“keyword”结尾的记录

> db.Account.find({"UserName":/keyword$/})

--SELECT * FROM Account WHERE UserName LIKE '%keyword'

查询聚集中指定列

> db.Account.find({},{"UserName":1,"Email":1})    --1:true

--SELECT UserName,Email FROM Account

查询聚集中排除指定列

> db.Account.find({},{"UserName":0})    --0:false

查询聚集中指定列,且Age > 20

> db.Account.find({"Age":{"$gt":20}},{"UserName":1,"Email":1})

--SELECT UserName,Email FROM Account WHERE Age > 20

聚集中字段排序

> db.Account.find().sort({"UserName":1}) -- 升序
> db.Account.find().sort({"UserName":-1}) --降序

--SELECT * FROM Account ORDER BY UserName ASC

--SELECT * FROM Account ORDER BY UserName DESC

统计聚集中记录条数

> db.Account.find().count()

--SELECT COUNT(*) FROM Account

统计聚集中符合条件的记录条数

> db.Account.find({"Age":{"$gt":20}}).count()

-- SELECT COUNT(*) FROM Account WHERE Age > 20

统计聚集中字段符合条件的记录条数

> db.Account.find({"UserName":{"$exists":true}}).count()

--SELECT COUNT(UserName) FROM Account

查询聚集中前5条记录

> db.Account.find().limit(5)

--SELECT TOP 5 * FROM Account

查询聚集中第10条以后的记录

> db.Account.find().skip(10)

--SELECT * FROM Account WHERE AccountID NOT IN (SELECT TOP 10 AccountID FROM Account)

查询聚集中第10条记录以后的5条记录

> db.Account.find().skip(10).limit(5)

--SELECT TOP 5 * FROM Account WHERE AccountID NOT IN (SELECT TOP 10 AccountID FROM Account)

or查询

> db.Account.find({"$or":[{"UserName":/keyword/},{"Email":/keyword/}]},{"UserName":true,"Email":true})

--SELECT UserName,Email FROM Account WHERE UserName LIKE '%keyword%' OR Email LIKE '%keyword%'

添加新记录

> db.Account.insert({AccountID:2,UserName:"lb",Password:"1",Age:25,Email:"libing@163.com",RegisterDate:"2011-06-09 16:36:95"})

修改记录

> db.Account.update({"AccountID":1},{"$set":{"Age":27,"Email":"libingql@163.com"}})
> db.Account.find({"AccountID":1})
{ "AccountID" : 1, "Age" : 27, "Email" : "libingql@163.com", "Password" : "1", "RegisterDate" : "2011-06-09 16:31:25", "UserName" : "libing", "_id" : ObjectId("4df08553188e444d001a763a") }
> db.Account.update({"AccountID":1},{"$inc":{"Age":1}})
> db.Account.find({"AccountID":1})
{ "AccountID" : 1, "Age" : 28, "Email" : "libingql@163.com", "Password" : "1", "RegisterDate" : "2011-06-09 16:31:25", "UserName" : "libing", "_id" : ObjectId("4df08553188e444d001a763a") }

删除记录

> db.Account.remove({"AccountID":1}) --DELETE FROM Account WHERE AccountID = 1
> db.Account.remove({"UserName":"libing"}) --DELETE FROM Account WHERE UserName = 'libing'
> db.Account.remove({"Age":{$lt:20}}) --DELETE FROM Account WHERE Age < 20
> db.Account.remove({"Age":{$lte:20}}) --DELETE FROM Account WHERE Age <= 20
> db.Account.remove({"Age":{$gt:20}}) --DELETE FROM Account WHERE Age > 20
> db.Account.remove({"Age":{$gte:20}}) --DELETE FROM Account WHERE Age >= 20
> db.Account.remove({"Age":{$ne:20}}) --DELETE FROM Account WHERE Age != 20
> db.Account.remove()    --全部删除
> db.Account.remove({})  --全部删除

MongoDB的数据库基本操作(二)的更多相关文章

  1. MongoDB的数据库基本操作(一)

    查看当前数据库 MongoDB shell version:1.8.1connecting to:test> dbtest 查看全部数据库列表 >show dbsChatRoom    0 ...

  2. 浅尝key-value数据库(二)——MongoDB的优与劣

    浅尝key-value数据库(二)——MongoDB的优与劣 MongoDB的名字取自英文单词"humongous"的中间五个字母,是一个C++开发的基于分布式文件存储的数据库开源 ...

  3. mysql 数据库(二)数据库的基本操作

    mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...

  4. MongoDB入门---数据库&&&集合的基本操作

    MongoDB作为一种nosql的数据库,它自己本身的增伤改查还有数据库集合的创建和展示与一般的数据库较之是有一部分差别的.我们今天就来看一下MongoDB的一些基本操作.    首先呢,就是先来数据 ...

  5. MongoDB学习:(二)MongoDB简单使用

    MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...

  6. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  7. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  8. ecmall数据库基本操作

    ecmall数据库基本操作,为了认真研究ecmall二次开发,我们必须熟悉ecamll的数据库结构,ecmall数据库结构研究熟悉之后,才能去认真分析ecamll的程序结构.从而实现ecmall二次开 ...

  9. vue.js+socket.io+express+mongodb打造在线聊天[二]

    vue.js+socket.io+express+mongodb打造在线聊天[二] 在线地址观看 http://www.chenleiming.com github地址 https://github. ...

随机推荐

  1. android 入门-ID

    @+id/btn             //表示在R.java文件里面新增一个id为btn的控件索引,最常用的一种声明控件id的方式. @+android:id/list  //+android:表 ...

  2. [Tools] 设置surface上的VPN

    [背景] 继续前对机器进行配置安装,这次是VPN在win8上的设置,又跟xp不一样,看来要慢慢适应win8的日子,呵呵 [开工] 首先按照原先在win xp上的步骤一步步来配置 选择connect t ...

  3. 优秀的API接口设计原则及方法(转)

    一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的.如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的 ...

  4. ML 06、感知机

    机器学习算法 原理.实现与实践  —— 感知机 感知机(perceptron)是二分类的线性分类模型,输入为特征向量,输出为实例的类别,取值+1和-1.感知机学习旨在求出将训练数据进行线性划分的分离超 ...

  5. 【SSH】 之 Struts2

    (一)Struts2是什么? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与 ...

  6. sql 数字转人民币大写函数(两种方法)

    ,)) returns @rmb table( 亿 ) ,仟万 ) ,佰万 ) ,拾万 ) ,万 ) ,仟 ) ,佰 ) ,拾 ) ,元 ) ,角 ) ,分 )) as begin insert in ...

  7. JVM内存配置详解

    前段时间在一个项目的性能测试中又发生了一次OOM(Out of swap sapce),情形和以前网店版的那次差不多,比上次更奇怪的是,此次搞了几天之后啥都没调整系统就自动好了,死活没法再重现之前的O ...

  8. 动态添加PopupWindow

    动态添加PopupWindow的方法private void showPopupWindow() { LayoutInflater inflater = LayoutInflater.from(thi ...

  9. Memcached集群代理软件magent安装小结

    magent是一个memcached代理软件(memcached agent),又叫memagent. (magent is a simple but useful proxy program for ...

  10. css整理-03 文本

    缩进和水平对齐 缩进文本:text-indent 可以设置为负值 可以为所有块级元素应用,但无法应用到行内元素,图像之类的替换元素: 水平对齐: text-align left,center,righ ...