1 MongoDb 命令查询所有数据库列表
2
3 CODE:
4
5 > show dbs
6
7 如果想查看当前连接在哪个数据库下面,可以直接输入db
8 CODE:
9
10 > db
11 Admin
12 想切换到test数据库下面
13 CODE:
14
15 > use test
16 switched to db test
17 > db
18 Test
19 想查看test下有哪些表或者叫collection,可以输入
20 CODE:
21
22
23 > show collections
24 system.indexes
25 user
26 想知道mongodb支持哪些命令,可以直接输入help
27 CODE:
28 > help
29 Dos代码 收藏代码
30
31 HELP
32 show dbs show database names
33 show collections show collections in current database
34 show users show users in current database
35 show profile show most recent system.profile entries with time >= 1ms
36 use <db name> set curent database to <db name>
37 db.help() help on DB methods
38 db.foo.help() help on collection methods
39 db.foo.find() list objects in collection foo
40 db.foo.find( { a : 1 } ) list objects in foo where a == 1
41 it result of the last line evaluated; use to further iterate
42
43 如果想知道当前数据库支持哪些方法:
44 CODE:
45
46
47
48 > db.help();
49 Java代码 收藏代码
50
51 DB methods:
52 db.addUser(username, password) 添加数据库授权用户
53 db.auth(username, password) 访问认证
54 db.cloneDatabase(fromhost) 克隆数据库
55 db.commandHelp(name) returns the help for the command
56 db.copyDatabase(fromdb, todb, fromhost) 复制数据库
57 db.createCollection(name, { size : ..., capped : ..., max : ... } ) 创建表
58 db.currentOp() displays the current operation in the db
59 db.dropDatabase() 删除当前数据库
60 db.eval_r(func, args) run code server-side
61 db.getCollection(cname) same as db['cname'] or db.cname
62 db.getCollectionNames() 获取当前数据库的表名
63 db.getLastError() - just returns the err msg string
64 db.getLastErrorObj() - return full status object
65 db.getMongo() get the server connection object
66 db.getMongo().setSlaveOk() allow this connection to read from the nonmaster member of a replica pair
67 db.getName()
68 db.getPrevError()
69 db.getProfilingLevel()
70 db.getReplicationInfo()
71 db.getSisterDB(name) get the db at the same server as this onew
72 db.killOp() kills the current operation in the db
73 db.printCollectionStats() 打印各表的状态信息
74 db.printReplicationInfo() 打印主数据库的复制状态信息
75 db.printSlaveReplicationInfo() 打印从数据库的复制状态信息
76 db.printShardingStatus() 打印分片状态信息
77 db.removeUser(username) 删除数据库用户
78 db.repairDatabase() 修复数据库
79 db.resetError()
80 db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into { cmdObj : 1 }
81 db.setProfilingLevel(level) 0=off 1=slow 2=all
82 db.shutdownServer()
83 db.version() current version of the server
84
85 如果想知道当前数据库下的表或者表collection支持哪些方法,可以使用一下命令如:
86 CODE:
87
88 > db.user.help(); user为表名
89 Java代码 收藏代码
90
91 DBCollection help
92 db.foo.count() 统计表的行数
93 db.foo.dataSize() 统计表数据的大小
94 db.foo.distinct( key ) - eg. db.foo.distinct( 'x' ) 按照给定的条件除重
95 db.foo.drop() drop the collection 删除表
96 db.foo.dropIndex(name) 删除指定索引
97 db.foo.dropIndexes() 删除所有索引
98 db.foo.ensureIndex(keypattern,options) - options should be an object with these possible fields: name, unique, dropDups 增加索引
99 db.foo.find( [query] , [fields]) - first parameter is an optional query filter. second parameter is optional set of fields to return.
100
101
102 根据条件查找数据
103 -----------------------
104 通过条件查询: db.foo.find( { x : 77 } , { name : 1 , x : 1 } )
105 -----------------------------
106
107 如果想知道当前数据库下的表或者表collection支持哪些方法,可以使用一下命令如:
108 CODE:
109
110 > db.user.help(); user为表名
111 Java代码 收藏代码
112
113 DBCollection help
114 db.foo.count() 统计表的行数
115 db.foo.dataSize() 统计表数据的大小
116 db.foo.distinct( key ) - eg. db.foo.distinct( 'x' ) 按照给定的条件除重
117 db.foo.drop() drop the collection 删除表
118 db.foo.dropIndex(name) 删除指定索引
119 db.foo.dropIndexes() 删除所有索引
120 db.foo.ensureIndex(keypattern,options) - options should be an object with these possible fields: name, unique, dropDups 增加索引
121 db.foo.find( [query] , [fields]) - first parameter is an optional query filter. second parameter is optional set of fields to return.
122
123
124 根据条件查找数据
125 -----------------------
126 通过条件查询: db.foo.find( { x : 77 } , { name : 1 , x : 1 } )
127 -----------------------------
128 instead of connecting to a mongod instance
129 -v [ --verbose ] be more verbose (include multiple times for more
130 verbosity e.g. -vvvvv)
131 -o [ --out ] arg (=dump) output directory
132 [falcon@www.fwphp.cn ~/mongodb/bin]$ ./mongodump -d test -o test/
133 connected to: 127.0.0.1
134 DATABASE: test to test/test
135 test.user to test/test/user.bson
136 100000 objects
137 test.system.indexes to test/test/system.indexes.bson
138 1 objects
139 [falcon@www.fwphp.cn ~/mongodb/bin]$ ls
140 2 mongo mongodump mongofiles mongorestore mongosniff
141 dump mongod mongoexport mongoimport mongos test
142 MongoDB的数据恢复工具mongorestore
143
144 查看test库中的表
145 CODE:
146
147 > show collections
148 system.indexes
149 User
150 删除user表
151 CODE:
152
153 > db.user.drop();
154 True
155
156 > show collections
157 System.indexes
158 现在利用mongorestore表恢复刚才利用mongodump备份的数据
159 CODE:
160
161 [falcon@www.fwphp.cn ~/mongodb/bin]$ ./mongorestore --help
162 usage: ./mongorestore [options] [directory or filename to restore from]
163 options:
164 --help produce help message
165 -h [ --host ] arg mongo host to connect to
166 -d [ --db ] arg database to use
167 -c [ --collection ] arg collection to use (some commands)
168 -u [ --username ] arg username
169 -p [ --password ] arg password
170 --dbpath arg directly access mongod data files in this path,
171 instead of connecting to a mongod instance
172 -v [ --verbose ] be more verbose (include multiple times for more
173 verbosity e.g. -vvvvv)
174
175 [falcon@www.fwphp.cn ~/mongodb/bin]$ ./mongorestore -d test -c user test/test/user.bson
176 connected to: 127.0.0.1
177 test/test/user.bson
178 going into namespace [test.user]
179
180 100000 objects
181 User表中的10w条记录已经恢复
182 CODE:
183
184 > show collections
185 system.indexes
186 user
187 > db.user.find();
188 { "_id" : ObjectId("4b9c8db08ead0e3347000000"), "uid" : 1, "username" : "Falcon.C-1" }
189 { "_id" : ObjectId("4b9c8db08ead0e3347010000"), "uid" : 2, "username" : "Falcon.C-2" }
190 { "_id" : ObjectId("4b9c8db08ead0e3347020000"), "uid" : 3, "username" : "Falcon.C-3" }
191 { "_id" : ObjectId("4b9c8db08ead0e3347030000"), "uid" : 4, "username" : "Falcon.C-4" }
192 { "_id" : ObjectId("4b9c8db08ead0e3347040000"), "uid" : 5, "username" : "Falcon.C-5" }
193 .................
194 has more
195
196
197
198
199
200 1. 超级用户相关:
201
202 #增加或修改用户密码
203
204 db.addUser('admin','pwd')
205
206 #查看用户列表
207
208 db.system.users.find()
209
210 #用户认证
211
212 db.auth('admin','pwd')
213
214 #删除用户
215
216 db.removeUser('mongodb')
217
218 #查看所有用户
219
220 show users
221
222 #查看所有数据库
223
224 show dbs
225
226 #查看所有的collection
227
228 show collections
229
230 #查看各collection的状态
231
232 db.printCollectionStats()
233
234 #查看主从复制状态
235
236 db.printReplicationInfo()
237
238 #修复数据库
239
240 db.repairDatabase()
241
242 #设置记录profiling,0=off 1=slow 2=all
243
244 db.setProfilingLevel(1)
245
246 #查看profiling
247 show profile
248
249 #拷贝数据库
250
251 db.copyDatabase('mail_addr','mail_addr_tmp')
252
253 #删除collection
254
255 db.mail_addr.drop()
256
257 #删除当前的数据库
258
259 db.dropDatabase()
260
261 2. 客户端连接
262
263 /usr/local/mongodb/bin/mongo user_addr -u user -p 'pwd'
264
265 3. 增删改
266
267 #存储嵌套的对象
268
269 db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
270
271 #存储数组对象
272
273 db.user_addr.save({'Uid':'yushunzhi@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
274
275 #根据query条件修改,如果不存在则插入,允许修改多条记录
276 db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
277
278 #删除yy=5的记录
279
280 db.foo.remove({'yy':5})
281
282 #删除所有的记录
283
284 db.foo.remove()
285
286 4. 索引
287
288 增加索引:1(ascending),-1(descending)
289
290 db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
291
292 #索引子对象
293
294 db.user_addr.ensureIndex({'Al.Em': 1})
295
296 #查看索引信息
297
298 db.deliver_status.getIndexes()
299
300 db.deliver_status.getIndexKeys()
301
302 #根据索引名删除索引
303 db.user_addr.dropIndex('Al.Em_1')
304
305 5. 查询
306
307 查找所有
308
309 db.foo.find()
310
311 #查找一条记录
312
313 db.foo.findOne()
314
315 #根据条件检索10条记录
316
317 db.foo.find({'msg':'Hello 1'}).limit(10)
318
319 #sort排序
320
321 db.deliver_status.find({'From':'yushunzhi@sohu.com'}).sort({'Dt',-1})
322
323 db.deliver_status.find().sort({'Ct':-1}).limit(1)
324
325 #count操作
326
327 db.user_addr.count()
328
329 #distinct操作
330
331 db.foo.distinct('msg')
332 #>操作
333
334 db.foo.find({"timestamp": {"$gte" : 2}})
335
336 #子对象的查找
337
338 db.foo.find({'address.city':'beijing'})
339
340 6. 管理
341
342 查看collection数据的大小
343
344 db.deliver_status.dataSize()
345
346 #查看colleciont状态
347
348 db.deliver_status.stats()
349
350 #查询所有索引的大小
351
352 db.deliver_status.totalIndexSize()