一澎嚣、數(shù)據(jù)庫 - 表
- 創(chuàng)建數(shù)據(jù)庫 mydb
use mydb
use mydb
也是切換數(shù)據(jù)庫命令。
- 刪除數(shù)據(jù)庫
db.dropDatabase()
這將刪除選定的數(shù)據(jù)庫拴清。如果還沒有選擇任何數(shù)據(jù)庫师痕,然后它會刪除默認的 test
數(shù)據(jù)庫。
- 檢查列表數(shù)據(jù)庫通過使用命令 show dbs
>show dbs
local 0.000GB
mydb 0.044GB
test 0.000GB
- mongodb中沒有表的概念震肮,是collection称龙,類似關系數(shù)據(jù)庫中的表
show collections:顯示當前數(shù)據(jù)庫中的集合
> show collections
articles
jianshuusers
(也可以使用show tables)
5)創(chuàng)建數(shù)據(jù)庫中的集合(表)
db.createCollection(name, options)
> db.createCollection('mycollection')
{ "ok" : 1 }
> show collections
articles
jianshuusers
mycollection
>
在MongoDB中,不需要創(chuàng)建集合戳晌。當插入一些文件 MongoDB 自動創(chuàng)建的集合鲫尊。
> db.mytb.insert({"name":"Tomson"})
WriteResult({ "nInserted" : 1 })
> show collections
articles
jianshuusers
mytb
>
- 刪除數(shù)據(jù)庫中的集合(表)
db.COLLECTION_NAME.drop()
> db.articles.drop()
true
注意:刪除時沒有確認
二、查詢
1)查詢所有記錄
db.articles.find()
相當于:select* from articles;
默認每頁顯示20條記錄沦偎,當顯示不下的情況下疫向,可以用it迭代命令查詢下一頁數(shù)據(jù)。注意:鍵入it命令不能帶“扛施;”
但是你可以設置每頁顯示數(shù)據(jù)的大小鸿捧,用DBQuery.shellBatchSize= 50;這樣每頁就顯示50條記錄了。
2)集合(表)的結(jié)構(gòu)
mongodb是沒查詢集合結(jié)構(gòu)(schema)的疙渣,直接用find查詢數(shù)據(jù)就好了匙奴。
- 查詢?nèi)サ艉蟮漠斍熬奂现械哪沉械闹貜蛿?shù)據(jù)
db.articles.distinct("author");
會過濾掉name中的相同數(shù)據(jù)
相當于:select distict(author) from articles;
- 條件查詢:
查詢likes > 1000的記錄
> db.jianshuusers.find({likes:{$gt:1000}})
相當于:select * from jianshuusers where likes >1000
小于(<): $lt
大于等于(>=):$gte
小于等于(<=):$lte
db.jianshuusers.find({"nickname": "純銀V"});
相當于:select * from jianshuusers where nickname ='純銀V'
模糊查詢
db.jianshuusers.find({nickname: /mongo/})
相當于%%
select * from jianshuusers where nickname like ‘%mongo%’;
db.jianshuusers.find({nickname: /^mongo/})
相當于 select * from jianshuusers where nickname like ‘mongo%’;
5)查詢指定列
查詢指定列nickname、url數(shù)據(jù)
db.jianshuusers.find({}, {nickname: 1, url: 1})
相當于:select nickname, url from jianshuusers;
6)排序
升序:
db.jianshuusers.find().sort({likes: 1})
降序:
db.jianshuusers.find().sort({likes: -1})
- 查詢某個結(jié)果集的記錄條數(shù)
db.jianshuusers.find({likes: {$gte: 1000}}).count()
相當于:select count(*) from jianshuusers where likes >= 1000;