今天我們來看一下MongoDB的基本指令,便于以后可以快速地使用
基本概念
資料庫(database)
集合(collection)
檔案(document)
在MongoDB中,資料庫和集合都不需要手動創建,當我們創建檔案時,如果檔案所在的集合或資料庫不存在會自動創建資料庫和集合
當我們向集合中插入檔案時,如果沒有給檔案指定_id屬性,則資料庫會自動為檔案添加_id,該屬性用來作為檔案的唯一標識
- 顯示當前的所有資料庫
show dbs 或 show databases - 進入到指定的資料庫中
use 資料庫名 - 查看當前所處資料庫
db - 顯示資料庫中所有的集合
show collections - 向資料庫中插入檔案,insert可以插入單個或多個,insertOne只能插入單個,insertMany可以插入多個
db.<collection>.insert(doc) 例子:db.stus.insert({name:"孫悟空",age:18,gender:"男"}) db.<collection>.insertOne(doc) 例子:db.stus.insertOne({name:"豬八戒",age:28,gender:"男"}); db.<collection>.insertMany([]) 例子:db.stus.insertMany([{name:"沙和尚",age:38,gender:"男"},{name:"白骨精",age:16,gender:"女"},{name:"蜘蛛精",age:14,gender:"女"}]); - 查看當前集合的所有檔案
db.<collection>.find() 例子:db.stus.find() - 生成一個UUID
ObjectId() - 根據條件查詢檔案,括號里面可以寫一個鍵值對物件,代表查詢的條件
db.<collection>.find({}) - 查詢集合中符合條件的第一個檔案
db.<collection>.findOne({}) - 查詢檔案的個數
db.<collection>.find().count() - 修改檔案,以下update用法會完全替換檔案,慎用,如果匹配到多個,默認只會修改第一個,如果想修改多個,則在后面加上配置{multi:true}
db.<collection>.update({查詢條件鍵值對物件},{替換鍵值對物件}) 例子:db.stus.update({name:"沙和尚"},{age:18}); - 修改檔案,指定屬性
db.<collection>.update({查詢條件鍵值對物件},{$set:{指定替換的鍵值對物件}}) - 修改檔案,洗掉屬性
db.<collection>.update({查詢條件鍵值對物件},{$unset:{洗掉的鍵值對物件}}) - 只能修改一個檔案,如果匹配到多個,默認只會修改第一個
db.<collection>.updateOne({查詢條件鍵值對物件},{$set:{指定替換的鍵值對物件}}) - 修改多個檔案
db.<collection>.updateMany({查詢條件鍵值對物件},{$set:{指定替換的鍵值對物件}}) - 替換檔案,如果匹配到多個,默認只會替換第一個
db.<collection>.replaceOne({查詢條件鍵值對物件},{替換鍵值對物件}) - 洗掉匹配到的檔案
db.<collection>.remove({查詢條件鍵值對物件}) db.<collection>.delectMany({查詢條件鍵值對物件}) - 洗掉匹配到的第一個檔案
db.<collection>.remove({查詢條件鍵值對物件},true) db.<collection>.delectOne({查詢條件鍵值對物件}) - 清空集合,如果資料庫中沒集合了,那么資料庫也會消失
db.<collection>.remove({}) 性能較差,一個一個洗掉檔案 db.<collection>.drop() 直接銷毀集合
//切換資料庫
use my_test
//向users集合中插入一個用戶名為孫悟空的檔案
db.users.insert({
username:"sunwukong"
});
//顯示當前資料庫
show dbs
//查詢users集合內容
db.users.find();
//向users集合插入一個用戶名為豬八戒的檔案
db.users.insert({
username:"zhubajie"
});
//查詢users集合中檔案的數量
db.users.find().count();
//查詢users集合中用戶名為孫悟空的檔案
db.users.find({username:"sunwukong"});
//在users集合用戶名為孫悟空的檔案中添加地址為花果山
db.users.update({username:"sunwukong"},{$set:{address:"huaguoshan"}});
//將users集合用戶名為豬八戒的檔案的用戶名替換為唐僧
db.users.replaceOne({username:"zhubajie"},{username:"tangseng"});
//將users集合用戶名為孫悟空的檔案中的地址移除
db.users.update({username:"sunwukong"},{$unset:{address:1}});
//在users集合用戶名為孫悟空的檔案增加愛好屬性,愛好屬性中又有城市和電影屬性
db.users.update({username:"sunwukong"},{$set:{hobby:{cities:["beijing","shanghai","shenzhen"],movies:["sanguo","hero"]}}});
//在users集合用戶名為唐僧的檔案增加愛好屬性,愛好屬性中又有電影屬性
db.users.update({username:"tangseng"},{$set:{hobby:{movies:["A Chinese Odyssey","King of comedy"]}}});
//查詢users集合中屬性hobby中屬性電影值為hero的檔案
db.users.find({'hobby.movies':"hero"});
//在users集合中用戶名為唐僧的檔案中的屬性hobby中屬性電影增加Interstellar值,允許值重復
db.users.update({username:"tangseng"},{$push:{"hobby.movies":"Interstellar"}});
//在users集合中用戶名為唐僧的檔案中的屬性hobby中屬性電影增加Interstellar值,不允許值重復
db.users.update({username:"tangseng"},{$addToSet:{"hobby.movies":"Interstellar"}});
//在users集合中洗掉屬性hobby中屬性城市為北京的檔案
db.users.remove({"hobby.cities":"beijing"});
//洗掉users集合
db.users.remove({});
db.users.drop();
//向numbers中插入2000條資料
//效率慢
for(var i=1; i<=2000; i++){
db.numbers.insert({num:i});
}
db.numbers.find();
use my_test
db.numbers.remove({});
//效率快
var arr = [];
for(var i=1; i<2000; i++){
arr.push({num:i});
}
db.numbers.insert(arr);
//查詢numbers中num為500的檔案
db.numbers.find({num:500});
//查詢numbers中num大于500的檔案
db.numbers.find({num:{$gt:500}});
db.numbers.find({num:{$eq:500}});
//查詢numbers中num小于30的檔案
db.numbers.find({num:{$lt:30}});
//查詢numbers中num大于40小于50的檔案
db.numbers.find({num:{$gt:40,$lt:50}});
//查詢numbers中num大于1995的檔案
db.numbers.find({num:{$gt:1995}});
//查看numbers集合中前10條資料
db.numbers.find({num:{$lte:10}});
//limit()設定顯示資料的上限
db.numbers.find().limit(10);
//跳過10條取10條skip((頁碼-1)*每頁顯示的條數).limit(每頁顯示的條數)
db.numbers.find().skip(10).limit(10);
//跳過20條取10條
db.numbers.find().skip(20).limit(10);
//查詢工資小于2000的員工
db.emp.find({sal:{$lt:2000}});
//查詢工資在1000-2000之間的員工
db.emp.find({sal:{$lt:2000,$gt:1000}});
//查詢工資小于1000或大于2500的員工
db.emp.find({$or:[{sal:{$lt:1000}},{sal:{$gt:2500}}]});
//查詢財務部的所有員工
var depno = db.dept.findOne({dname:"財務部"}).deptno;
db.emp.find({deptno:depno});
//為所有薪資低于1000的員工增加工資400元
db.emp.updateMany({sal:{$lte:1000}},{$inc:{sal:400}});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/263337.html
標籤:其他
上一篇:MySQL基礎-3 資料完整性
