在ubuntu终端下输入mongo,可以看到自己电脑上安装的mongodb的版本。
$mongo 192.168.x.x即可进入数据库(不需要用户名和密码就能访问的数据库)
$ssh name@192.168.x.x回车就会提示输入密码,输入密码就能进入数据库。(需要用户名、密码登陆的数据库)(name 为用户名)
show dbs 显示mongodb服务器下的各个数据库列表名称
use name (name 为数据库名称)
在进入相应的数据库后,输入 show collections 即可看到该数据库下的各个文件夹(我最开始的mongodb版本为2.4.9,输入这个命令不显示数据库下的文件名称,升级到3.x后就可以了)
show collections
db.filename.find()
其中,filename为上一操作后返回的文件名称,输入此命令后可以查看文件信息。
eq:
> db.test.find()
{ "_id" : ObjectId("57be736ccf28b40888c632be"), "123123" : "哈哈哈" }
>db.test.count() 可以获取collection下的文件总数
help查看命令提示:
help
db.help()
查看当前使用的数据库:db.getName()
显示当前db状态:db.stats()
当前db版本:db.version()
查看当前db的链接机器地址:db.getMongo()
创建一个聚集集合(table):db.createCollection(“collName”, {size: 20, capped: 5, max: 100}) //创建成功会显示{“ok”:1}
//判断集合是否为定容量db.collName.isCapped()
得到指定名称的聚集集合(table):db.getCollection("account")
显示当前db所有聚集索引的状态:db.printCollectionStats()
查询之前的错误信息(即在本次与数据库的交互操作中错误的无效操作):db.getPrevError()
清除错误记录:db.resetError()
上面这些操作是我在使用的过程中用到的一些操作,亲测可行,其实还有很多操作,如对用户的管理、根据字段进行查询、修改等,但是我暂时不需要就没有尝试。上面这些操作对于了解你所要使用的数据库是很有帮助的,通过这些操作你可以清楚数据库下有什么文件,文件的字段信息等,只有了解了这些信息你才能进行下一步的数据存取。
上述内容部分参考:http://www.jb51.net/article/48217.htm
MongoDB常用操作命令大全
但是原文内容较多,故根据个人需要删除了部分操作,同时又添加了部分自己在使用过程中用到的其他操作。
利用pymongo进行mongodb数据库的部分操作:(可交互操作)
>>>from pymongo import MongoClient
>>>import gridfs
>>>client=MongoClient('192.168.x.x')
>>>db=client['dbname'] #dbname为此服务器下的某一数据库名称
>>>fs=gridfs.GridFS(db)
>>>collection=db.test #test为此数据库下的某一数据集名称,此操作获取该数据集
>>>collection.find_one() #这句代码获取数据集中的第一个对象数据
{u'_id': ObjectId('57be736ccf28b40888c632be'), u'123123': u'\u54c8\u54c8\u54c8'} #此为输出结果。
>>>collection.count() #输出该数据集下的对象总数
2341 #输出结果
Querying for More Than One Document
To get more than a single document as the result of a query we use thefind()method.find() returns aCursor instance, which allows us to iterateover all matching documents. For example, we can iterate over everydocument in theposts collection:<span style="font-size:14px;">>>> for post in posts.find({"author": "Mike"}):
... post
...
{u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
{u'date': datetime.datetime(2009, 11, 12, 11, 14), u'text': u'Another post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'bulk', u'insert']}</span>
Just like we did withfind_one(),we can pass a document tofind()to limit the returned results. Here, we get only those documents whoseauthor is “Mike”:<span style="font-size:14px;">>>> for post in posts.find({"author": "Mike"}):
... post
...
{u'date': datetime.datetime(...), u'text': u'My first blog post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'mongodb', u'python', u'pymongo']}
{u'date': datetime.datetime(2009, 11, 12, 11, 14), u'text': u'Another post!', u'_id': ObjectId('...'), u'author': u'Mike', u'tags': [u'bulk', u'insert']}</span>
pymongo Tutorial
补充:(部分基础知识,觉得很有必要了解)
一、文档的注意事项:
1. 键值对是有序的,如:{ "name" : "stephen", "genda" : "male" } 不等于 { "genda" : "male", "name" : "stephen" }
2. 文档信息是大小写敏感的,如:{ "name" : "stephen" } 不等于 { "Name" : "stephen" }
3. 文档信息是区分类型的,如:{ "age" : 30 } 不等于 { "age" : "30" }
4. 文档中不能出现重复键,如:{ "name" : "stephen", "name" : "liu" }
二、使用多个集合的必要性:
1. 如果把各种模式的文档存放在一个集合中,对于开发者来说是非常灾难的。因为在获取到查询结果之后,就需要手工编写代码过滤不同类型的文档了。
2. 会使查询效率降低。试想一下,假设某个模式的文档的数据量相对较少,如果仍然将其放到一个通用的大集合中,其查询效率势必会大大低于将其放到独立的集合中。
3. 在创建索引时,如果所有的文档均为同一模式,那么索引的利用率将会更加高效。
三、集合的命名注意事项:
1. 集合名不能是空字符串""。
2. 不要以system开头,这一般是为系统保留的,如system.users集合中保存了数据库的用户信息,而system.namespace集合中保留了数据库集合的信息。
3. 不要在集合名里面包含'$'字符。
4. 子集合只是一种较好的集合规划方式,如blog.posts和blog.anthurs,实际上它们和blog集合之间没有任何关系,甚至blog集合可以不存在。
四、数据库:
在同一个MongoDB服务器中可以存在多个数据库,每个不同的数据库存储在不同的文件中。又由于数据库名和文件名是绑定的,因此数据库名会有一些限制。
1. 不能是空字符""。
2. 全部小写且不超过64字节。
3. 不得含有文件名命名中的非法字符。
4. admin数据库是管理数据库,如果某个用户位于该数据库中,他将自动继承所有数据库权限。一些特定的服务器命令也只能从这个数据库运行。
5. local这个数据库永远不会被复制,只是用于存储限于本地单台服务器的任意集合。
6. 数据库名.集合名,表示该集合的完全限定名,其长度不要超过121自己。
整理的比较杂乱,但基本上都是比较常用的操作,根据个人需要整理了会用到的操作,仅供参考,如果需要更详细的操作的话,而且英语阅读能力尚可的情况下,建议直接看官网,不建议看别人写的博客,官网是写的最详细最准确的~