溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mongoDB數(shù)據(jù)庫(kù)基本操作

發(fā)布時(shí)間:2020-07-11 08:16:34 來源:網(wǎng)絡(luò) 閱讀:463 作者:123654zf 欄目:數(shù)據(jù)庫(kù)

mongoDB中聚集集合(collection/coll)相當(dāng)于mysql中的表

文檔相當(dāng)于mysql中的每一行數(shù)據(jù)


常用命令

 1.獲得幫助命令

db.help()
db.表名.help()
db.表名.find().help()
rs.help()

 2.切換/創(chuàng)建數(shù)據(jù)庫(kù)

use 數(shù)據(jù)庫(kù)名稱  注意:mongoDB的數(shù)據(jù)庫(kù)可以先使用,后創(chuàng)建,當(dāng)創(chuàng)建一個(gè)集合(table)時(shí),當(dāng)前數(shù)據(jù)庫(kù)會(huì)自動(dòng)創(chuàng)建
例子:有一個(gè)數(shù)據(jù)庫(kù)為sutdentdb,要切換到這個(gè)數(shù)據(jù)庫(kù)則:
use studentdb

 3.查詢所有數(shù)據(jù)庫(kù)

show dbs
例子:
> show dbs
admin      0.078GB
local      0.078GB
studentdb  0.078GB
test       0.078GB

 4.刪除當(dāng)前使用的數(shù)據(jù)庫(kù)

db.dropDatabase()
例子:
> use test
switched to db test
> db.dropDatabase()
{ "dropped" : "test", "ok" : 1 }
> show dbs
admin      0.078GB
local      0.078GB
studentdb  0.078GB

 5.查看當(dāng)前使用的數(shù)據(jù)庫(kù)

db.getName()
例子:
> use studentdb
switched to db studentdb
> db.getName()
studentdb

 6.顯示當(dāng)前db狀態(tài)

db.stats()

 7.當(dāng)前db版本

> db.version()
2.6.12

 8.查看數(shù)據(jù)庫(kù)中有多少個(gè)表(聚集集合)

show collections



查看聚集集合(表)的基本信息

  1. 查看幫助

db.表名.help()

2.查詢當(dāng)前集合中的數(shù)據(jù)條數(shù)

db.表名.count()

3.查看數(shù)據(jù)空間大小

db.表名.dataSize()

4.當(dāng)前聚集集合所在的數(shù)據(jù)庫(kù)

db.表名.getDB()

5.得到當(dāng)前聚集集合的狀態(tài)

db.表名.stats()

6.得到聚集集合的總大小

db.表名.totalSize()

7.查看聚集集合存儲(chǔ)空間大小

db.表名.storageSize()

8.查看Shard版本信息

db.表名.getShardVersion()

9.給聚集集合重命名

db.表名.renameCollection("新名字")

10.刪除當(dāng)前聚集集合

db.表名.drop()


查詢操作

1.查詢所有記錄

db.表名.find()
相當(dāng)于:select* from 表名;
默認(rèn)每頁(yè)顯示20條記錄,當(dāng)顯示不下的情況下,可以用it迭代命令查詢下一頁(yè)數(shù)據(jù)。注意:鍵入it命令不能帶“;”

2.查詢結(jié)果會(huì)過濾掉某一字段中重復(fù)的數(shù)據(jù),然后顯示出來

db.表名.distinct("字段名")
例子:
> db.student.distinct("Age")
[ 20, 40 ]  注:將student表中Age字段中的數(shù)據(jù)去重后,顯示出來

3.查詢age=22的數(shù)據(jù)

db.表名.find({"age":22})
例子:
> db.student.find({"age":20})
{ "_id" : ObjectId("5740dcb29bc83e10802f1cd8"), "name" : "kity", "age" : 20, "gender" : "womand" }

4.查詢age大于22的數(shù)據(jù)

大于號(hào)  $gt
> db.student.find({"age":{$gt:22}})
{ "_id" : ObjectId("5740c1419bc83e10802f1cd6"), "name" : "Tom", "age" : 23, "gender" : "male" }
{ "_id" : ObjectId("5740dc369bc83e10802f1cd7"), "name" : "jerry", "age" : 30, "gender" : "male", "guoji" : "china" }
{ "_id" : ObjectId("5742263773344acd707888ba"), "name" : "Gu Zenghui", "age" : 25, "gender" : "male", "Course" : "Linux" }

5.查詢age大于等于25的數(shù)據(jù)

大于等于 $gte
db.student1.find({age:{$gte:25}})

6.查詢age小于25的數(shù)據(jù)

小于 $lt
db.student1.find({age:{$lt:25}})

7.查詢age小于等于25的數(shù)據(jù)

小于等于 $lte
db.student1.find({age:{$lte:25}})

8.查詢age大于等于30且小于等于35之間的數(shù)據(jù)

db.student1.find({age:{$gte:30,$lte:35}})

  總結(jié):

     大于   $gt

     大于等于  $gte

     小于   $lt

     小于等于  $lte

9.查詢name中包含student的數(shù)據(jù)

> db.student1.find({name:/student/}).count()
9916
注:文檔中只要有student,就會(huì)被顯示出來

10.查詢name中以G開頭的數(shù)據(jù)

db.student.find({name:/^G/})

11.輸出student表中name和age這兩列

> db.student.find({},{name:1,age:1})
{ "_id" : ObjectId("5740c1419bc83e10802f1cd6"), "name" : "Tom", "age" : 23 }
{ "_id" : ObjectId("5740dc369bc83e10802f1cd7"), "name" : "jerry", "age" : 30 }
{ "_id" : ObjectId("5740dcb29bc83e10802f1cd8"), "name" : "kity", "age" : 20 }
{ "_id" : ObjectId("57418fd97267e7d85d8baf3a"), "name" : "Ou yangfeng" }
{ "_id" : ObjectId("57418ff77267e7d85d8baf3b"), "name" : "Yang Guo" }
{ "_id" : ObjectId("5741901e7267e7d85d8baf3c"), "name" : "Guo jing" }
{ "_id" : ObjectId("5742263773344acd707888ba"), "name" : "Gu Zenghui", "age" : 25 }

12.輸出student表中name和age這兩列,并指定age>20

> db.student.find({age:{$gt:20}},{name:1,age:1})
{ "_id" : ObjectId("5740c1419bc83e10802f1cd6"), "name" : "Tom", "age" : 23 }
{ "_id" : ObjectId("5740dc369bc83e10802f1cd7"), "name" : "jerry", "age" : 30 }
{ "_id" : ObjectId("5742263773344acd707888ba"), "name" : "Gu Zenghui", "age" : 25 }

13.按年齡排序

升序:db.student.find().sort({age:1})
降序:db.student.find().sort({age:-1})

14.查詢name為jerry且年齡為30的數(shù)據(jù)

db.student.find({name:"jerry",age:30})

15.查詢前5條數(shù)據(jù)

db.student.find().limit(5)

16.查詢5條以后數(shù)據(jù)

db.student.find().skip(5)

17.查詢?cè)诘诙械降谖逍兄g的數(shù)據(jù)

db.student.find().limit(2).skip(5)

18.or 查詢年齡為20或25的數(shù)據(jù)

db.student.find({$or:[{age:20},{age:25}]})
{ "_id" : ObjectId("5740dcb29bc83e10802f1cd8"), "name" : "kity", "age" : 20, "gender" : "womand" }
{ "_id" : ObjectId("5742263773344acd707888ba"), "name" : "Gu Zenghui", "age" : 25, "gender" : "male", "Course" : "Linux" }

19.查詢第一條數(shù)據(jù)

db.student.findOne()

20.統(tǒng)計(jì) 使用count()函數(shù)



索引

1.創(chuàng)建索引

> db.student.ensureIndex({name:1})
{
	"createdCollectionAutomatically" : false,
	"numIndexesBefore" : 1,
	"numIndexesAfter" : 2,
	"ok" : 1
}
> db.student.getIndexes()    //查看索引
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1
		},
		"name" : "name_1",
		"ns" : "studentdb.student"
	}
]
> db.student.ensureIndex({name:1,age:1})
{
	"createdCollectionAutomatically" : false,
	"numIndexesBefore" : 2,
	"numIndexesAfter" : 3,
	"ok" : 1
}
> db.student.getIndexes()
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1
		},
		"name" : "name_1",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1,
			"age" : 1
		},
		"name" : "name_1_age_1",
		"ns" : "studentdb.student"
	}
]
> db.student.ensureIndex({name:1,age:-11})
{
	"createdCollectionAutomatically" : false,
	"numIndexesBefore" : 3,
	"numIndexesAfter" : 4,
	"ok" : 1
}
> db.student.getIndexes()
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"name" : "_id_",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1
		},
		"name" : "name_1",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1,
			"age" : 1
		},
		"name" : "name_1_age_1",
		"ns" : "studentdb.student"
	},
	{
		"v" : 1,
		"key" : {
			"name" : 1,
			"age" : -11
		},
		"name" : "name_1_age_-11",
		"ns" : "studentdb.student"
	}
]


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI