Home | 简体中文 | 繁体中文 | 杂文 | Search | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 作品与服务 | Email

47.5. mongo shell

	
# mongo
MongoDB shell version: 2.2.3
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
>
	
	

47.5.1. help

help

db.help()                    help on DB methods
db.foo.help()                help on collection methods
		

47.5.2. show 查看命令

47.5.2.1. show dbs

show dbs show database names

			
> show dbs
local	(empty)
logging	0.203125GB
test	0.203125GB
			
			

47.5.2.2. show collections

show collections show collections in current database

			

> show collections
bios
system.indexes
			
			

另一种用法是show tables

			
> show tables
bios
system.indexes
			
			

47.5.2.3. show users

show users show users in current database

			

			
			

47.5.2.4. show profile

show profile show most recent system.profile entries with time >= 1ms

			
> show profile
db.system.profile is empty
Use db.setProfilingLevel(2) will enable profiling
Use db.system.profile.find() to show raw profile entries
			
			

47.5.3. 切换数据库

		
use <db name>                set curent database to <db name>

> use logging
switched to db logging
		
		

47.5.4. 记录管理

47.5.4.1. save

存储嵌套的对象

			
db.foo.save({'name':'neo','address':{'city':'shenzhen','post':518000},'phone':[13113668890,13322993040]})
			
			

存储数组对象

			
db.foo.save({'Uid':'netkiller@msn.com','phone':['13322993040','13113668890']})
			
			

47.5.4.2. insert

			
db.bios.insert(
   {
     _id: 1,
     name: { first: 'John', last: 'Backus' },
     birth: new Date('Dec 03, 1924'),
     death: new Date('Mar 17, 2007'),
     contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ],
     awards: [
               {
                 award: 'W.W. McDowell Award',
                 year: 1967,
                 by: 'IEEE Computer Society'
               },
               {
                 award: 'National Medal of Science',
                 year: 1975,
                 by: 'National Science Foundation'
               },
               {
                 award: 'Turing Award',
                 year: 1977,
                 by: 'ACM'
               },
               {
                 award: 'Draper Prize',
                 year: 1993,
                 by: 'National Academy of Engineering'
               }
             ]
   }
)
			
			

47.5.4.3. update

根据query条件修改,如果不存在则插入,允许修改多条记录

db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
			

47.5.4.4. remove

删除uid=10的记录

			
db.foo.remove({'uid':10})
			
			

删除所有的记录

db.foo.remove()
			
47.5.4.4.1. 删除条件使用 _id
db.foo.remove({ "_id" : ObjectId("56e10b66a22ef1b1408b4567")})
				

47.5.4.5. find

查找所有 所有记录

db.foo.find()                list objects in collection foo
db.foo.find( { a : 1 } )     list objects in foo where a == 1
			

查找一条记录

db.foo.findOne()
			

根据条件检索10条记录

db.foo.find({'name':'neo'}).limit(10)
			

sort排序

db.foo.find({'name':'neo'}).sort({'Dt',-1})
db.foo.find().sort({'Ct':-1}).limit(1)
			

count记录统计操作

db.foo.count()
			

distinct操作,去重复查询指定列,

db.foo.distinct('name')
			

”>=”操作

			
db.foo.find({"timestamp": {"$gte" : 2}})
			
			

子对象的查找

db.foo.find({'address.city':'shenzhen'})
			

47.5.4.6. count()

			
> db.access.count()
51528
> db.access.count()
104401
			
			

47.5.4.7. group()

group()类似SQL中的Group by

			
> db.test.group({key: {remote_addr: true}, initial: {count: 0}, reduce: function(obj, prev) {prev.count++}});
[
	{
		"remote_addr" : "192.168.2.76",
		"count" : 3
	},
	{
		"remote_addr" : "192.168.2.70",
		"count" : 1
	}
]
			
			
comments powered by Disqus