mongodb基础命令及基本知识

先搞清楚集合,文档,数据库的关系。

转载自://http://blog.csdn.net/mengxiangyue/article/details/8943767

不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。

文档:

文档是mongodb中的最核心的概念,是其核心单元,我们可以将文档类比成关系型数据库中的每一行数据。多个键及其关联的值有序的放置在一起就是文档。在mongodb中使用一种类json的bson存储数据。bson数据可以理解为在json的基础上添加了一些json中没有的数据类型。如果我们会json,那么bson我们就已经掌握了一半了,至于新添加的数据类型后面我会介绍。文档例子如下:

[html]  view plain copy
  1. {“name":"mengxiangyue","sex":"nan"}  
对于文档是有一些限制的:有序、区分大小写的,所以下面的两个文档是与上面不同的
[html]  view plain copy
  1. {”sex“:"nan","name":"mengxiangyue"}  
  2. {"Name":"mengxiangyue","sex":"nan"}  

集合:

集合就是一组文档的组合。如果将文档类比成数据库中的行,那么集合就可以类比成数据库的表。
在mongodb中的集合是无模式的,也就是说集合中存储的文档的结构可以是不同的,比如下面的两个文档可以同时存入到一个集合中:

[html]  view plain copy
  1. {"name":"mengxiangyue"}  
  2. {"Name":"mengxiangyue","sex":"nan"}  
这个是与关系型数据库不同,在关系型数据中所有的行的字段都是相同的。不能像mongodb中这样可以不相同。虽然mongodb的集合是无模式的,但是mongodb的官方还是建议所有的文档的结构都是相同的,这样处理起来比较方便。

数据库:

在mongodb中的数据库的概念与关系型的数据库中的数据库的概念基本相同。在mongodb中的数据库是多个集合的组合。同样一个mongodb中可以建立多个数据库,这些数据库也是相互独立的,也可以独立进行用户验证。

在给数据库起名的时候有几个是保留的admin、local、config。这几个数据库是mongodb的保留数据库。

admin数据库,是一个root数据库,在这个数据库中添加用户,该用户将继承所有的数据库的权限,以后讲权限的时候会用到。

local数据库,这个数据库不会被复制,只存储本地服务器才能访问的数据库。以后再分片的时候会降到。

config数据库用于保存分片的相关信息。

可能有些地方写的也不对,只能通过查资料尽量写的正确,如果哪里错了,还请大虾指出。


基本操作

敲入help命令:

show dbs                     show database names #显示当前总共有哪些数据库
show collections             show collections in current database #显示当前数据库的所有集合
show users                   show users in current database #显示用户
show profile                 show most recent system.profile entries with time >= 1ms 
show logs                    show the accessible logger names #现实所有的log文档
show log [name]              prints out the last segment of log in memory, 'global' is default#显示名字为name的log文档的信息
use <db_name>                set current database #使用db_name此数据库
db.foo.find()                list objects in collection foo #显示数据库.集合....下所有文档
db.foo.find( { a : 1 } )     list objects in foo where a == 1 #显示数据库.集合....下所有符合条件的a=1的文档
it                           result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x   set default number of items to display on shell 
exit                         quit the mongo shell  #退出


遇到的问题:

1.Sat Jul 27 10:43:29 SyntaxError: missing ; before statement (shell):1

语法错误,有可能是忘记了函数的方法要加()也有可能是忘记了加 “,”等等


2.> foo.insert(test)
   Sat Jul 27 10:23:28 ReferenceError: foo is not defined (shell):1

foo是我定义的数据库名字,所以不能直接使用数据库执行insert()方法,只有集合才执行更删改查文档的方法。


3.> foo['bar'].insert({'name': 'hhx'})
Sat Jul 27 11:11:34 ReferenceError: foo is not defined (shell):1

    当前处于foo数据库中(命令db),使用数据库名字的地方都用db统一代替,所以正确的使用方法是db['bar'].insert({'name': 'hhx'})


学习mongodb,网址:http://special.csdn.net/mongodb/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值