博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2.4. MongoDB Shell
阅读量:6162 次
发布时间:2019-06-21

本文共 4205 字,大约阅读时间需要 14 分钟。

2.4.1. show 查看命令

2.4.1.1. show dbs

show dbs show database names

> show dbslocal	(empty)logging	0.203125GBtest	0.203125GB

2.4.1.2. show collections

show collections show collections in current database

> show collectionsbiossystem.indexes

另一种用法是show tables

> show tablesbiossystem.indexes

2.4.1.3. show users

show users show users in current database

 

2.4.1.4. show profile

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

> show profiledb.system.profile is emptyUse db.setProfilingLevel(2) will enable profilingUse db.system.profile.find() to show raw profile entries

2.4.2. 切换数据库

use 
set curent database to
> use loggingswitched to db logging

2.4.3. save

存储嵌套的对象

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

存储数组对象

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

2.4.4. 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'               }             ]   })

2.4.5. update

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

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

2.4.6. remove

删除uid=10的记录

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

删除所有的记录

db.foo.remove()

2.4.6.1. 删除条件使用 _id

db.foo.remove({ "_id" : ObjectId("56e10b66a22ef1b1408b4567")})

2.4.7. 删除 collection

db.collection.drop()

2.4.8. count()

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

2.4.9. 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	}]

2.4.10. find() MongoDB 2.x

查找所有 所有记录

db.foo.find()                list objects in collection foodb.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'})

2.4.11. find() MongoDB 3.x

db.getCollection('tracker').find({name:"81004892"})

2.4.11.1. Query

2.4.11.2. 包含字段

db.getCollection('pyramidSelling').find({},{'phone':1})

2.4.11.3. 排除字段

db.getCollection('pyramidSelling').find({},{'phone':0})

2.4.11.4. sort()

db.getCollection('tracker').find({name:"81004892"}).sort({ctime: -1})

2.4.12. 管道操作

cat data.bson | mongo test

2.4.13. shutdownServer

关闭MongoDB数据库

db.shutdownServer()

2.4.14. aggregate

2.4.14.1. project

2.4.14.1.1. $split
{    "_id" : ObjectId("591a710320156761bdf68a06"),    "_class" : "mis.domain.PyramidSelling",	...	...    "status" : true,    "createdDate" : ISODate("2017-05-16T03:24:51.511Z")}
db.getCollection('pyramidSelling').aggregate([  { $project : { _class : { $split: ["$_class", "."] } } }]);
2.4.14.1.2. substr
db.getCollection('pyramidSelling').aggregate(   [      {         $project: {            userName: 1,            phone: {               prefix: { $substr: [ "$phone", 0, 3 ] },               mobile: { $substr: [ "$phone", 3, 11 ] }            },         }      }   ])

2.4.14.2. groupby + sum

select username, sum(balance) as total from users group by member.

db.member.aggregate([{     $group: {         _id: "$username",         total: { $sum: "$balance" }    } }])

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
P2P应用层组播
查看>>
Sharepoint学习笔记—修改SharePoint的Timeouts (Execution Timeout)
查看>>
CSS引入的方式有哪些? link和@import的区别?
查看>>
Redis 介绍2——常见基本类型
查看>>
asp.net开发mysql注意事项
查看>>
(转)Cortex-M3 (NXP LPC1788)之EEPROM存储器
查看>>
ubuntu set defult jdk
查看>>
[译]ECMAScript.next:TC39 2012年9月会议总结
查看>>
【Xcode】编辑与调试
查看>>
用tar和split将文件分包压缩
查看>>
[BTS] Could not find stored procedure 'mp_sap_check_tid'
查看>>
PLSQL DBMS_DDL.ALTER_COMPILE
查看>>
Activity生命周期
查看>>
高仿UC浏览器弹出菜单效果
查看>>
Ubuntu忘记密码,进不了系统的解决方法
查看>>
[原创]白盒测试技术思维导图
查看>>
<<Information Store and Management>> 读书笔记 之八
查看>>
Windows 8 开发之设置合约
查看>>
闲说HeartBeat心跳包和TCP协议的KeepAlive机制
查看>>
MoSQL
查看>>