麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > MongoDB > 正文

MongoDB 語法使用小結

2020-03-14 13:27:20
字體:
來源:轉載
供稿:網友
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的
 
 
他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。 
它的特點是高性能、易部署、易使用,存儲數據非常方便。 

1. MongoDB的獲取和安裝 

(1)獲取地址 http://www.mongodb.org/downloads 根據自己需要選擇相應的版本,linux下可以使用wget 命令。 
(2)解壓 mongodb-win32-i386-1.8.1 
(3)創建數據存放文件夾,mongodb默認的數據目錄 /data/db 
C:/> mkdir /data 
C:/> mkdir /data/db 
(4)運行 MongoDB 
mongod.exe - 數據庫的服務器端,相當于mysql的 mysqld命令,啟動服務器端 
mongo.exe - 數據庫的客戶端,相當于mysql的mysql命令,打開管理控制臺 

啟動服務 
mongod.exe --dbpath F:/DataBase/MongoDB/db/ 
--dbpath 數據文件存放路徑 
--port 數據服務端口 
C:/> cd /my_mongo_dir/bin 
C:/my_mongo_dir/bin > mongod //啟動mongod 服務器,默認的數據庫路徑 /data/db,端口27071 
啟動客戶端 
mongo.exe cclove 
cclove 所連接的數據庫名稱 
C:/> cd /my_mongo_dir/bin 
C:/my_mongo_dir/bin> mongo 

2. 熟悉MongoDB的數據操作語句,類sql 

數據庫操作語法 
mongo --path 
db.AddUser(username,password) 添加用戶 
db.auth(usrename,password) 設置數據庫連接驗證 
db.cloneDataBase(fromhost) 從目標服務器克隆一個數據庫 
db.commandHelp(name) returns the help for the command 
db.copyDatabase(fromdb,todb,fromhost) 復制數據庫fromdb---源數據庫名稱,todb---目標數據庫名稱,fromhost---源數據庫服務器地址 
db.createCollection(name,{size:3333,capped:333,max:88888}) 創建一個數據集,相當于一個表 
db.currentOp() 取消當前庫的當前操作 
db.dropDataBase() 刪除當前數據庫 
db.eval(func,args) run code server-side 
db.getCollection(cname) 取得一個數據集合,同用法:db['cname'] or db.cname 
db.getCollenctionNames() 取得所有數據集合的名稱列表 
db.getLastError() 返回最后一個錯誤的提示消息 
db.getLastErrorObj() 返回最后一個錯誤的對象 
db.getMongo() 取得當前服務器的連接對象get the server connection object 
db.getMondo().setSlaveOk() allow this connection to read from then nonmaster membr of a replica pair 
db.getName() 返回當操作數據庫的名稱 
db.getPrevError() 返回上一個錯誤對象 
db.getProfilingLevel() ?什么等級 
db.getReplicationInfo() ?什么信息 
db.getSisterDB(name) get the db at the same server as this onew 
db.killOp() 停止(殺死)在當前庫的當前操作 
db.printCollectionStats() 返回當前庫的數據集狀態 
db.printReplicationInfo() 
db.printSlaveReplicationInfo() 
db.printShardingStatus() 返回當前數據庫是否為共享數據庫 
db.removeUser(username) 刪除用戶 
db.repairDatabase() 修復當前數據庫 
db.resetError() 
db.runCommand(cmdObj) run a database command. if cmdObj is a string, turns it into {cmdObj:1} 
db.setProfilingLevel(level) 0=off,1=slow,2=all 
db.shutdownServer() 關閉當前服務程序 
db.version() 返回當前程序的版本信息 

數據集(表)操作語法 
db.linlin.find({id:10}) 返回linlin數據集ID=10的數據集 
db.linlin.find({id:10}).count() 返回linlin數據集ID=10的數據總數 
db.linlin.find({id:10}).limit(2) 返回linlin數據集ID=10的數據集從第二條開始的數據集 
db.linlin.find({id:10}).skip(8) 返回linlin數據集ID=10的數據集從0到第八條的數據集 
db.linlin.find({id:10}).limit(2).skip(8) 返回linlin數據集ID=1=的數據集從第二條到第八條的數據 
db.linlin.find({id:10}).sort() 返回linlin數據集ID=10的排序數據集 
db.linlin.findOne([query]) 返回符合條件的一條數據 
db.linlin.getDB() 返回此數據集所屬的數據庫名稱 
db.linlin.getIndexes() 返回些數據集的索引信息 
db.linlin.group({key:...,initial:...,reduce:...[,cond:...]}) 
db.linlin.mapReduce(mayFunction,reduceFunction,<optional params>) 
db.linlin.remove(query) 在數據集中刪除一條數據 
db.linlin.renameCollection(newName) 重命名些數據集名稱 
db.linlin.save(obj) 往數據集中插入一條數據 
db.linlin.stats() 返回此數據集的狀態 
db.linlin.storageSize() 返回此數據集的存儲大小 
db.linlin.totalIndexSize() 返回此數據集的索引文件大小 
db.linlin.totalSize() 返回些數據集的總大小 
db.linlin.update(query,object[,upsert_bool]) 在此數據集中更新一條數據 
db.linlin.validate() 驗證此數據集 
db.linlin.getShardVersion() 返回數據集共享版本號 

db.linlin.find({'name':'foobar'}) select * from linlin where name='foobar' 
db.linlin.find() select * from linlin 
db.linlin.find({'ID':10}).count() select count(*) from linlin where ID=10 
db.linlin.find().skip(10).limit(20) 從查詢結果的第十條開始讀20條數據 select * from linlin limit 10,20 ----------mysql 
db.linlin.find({'ID':{$in:[25,35,45]}}) select * from linlin where ID in (25,35,45) 
db.linlin.find().sort({'ID':-1}) select * from linlin order by ID desc 
db.linlin.distinct('name',{'ID':{$lt:20}}) select distinct(name) from linlin where ID<20 

db.linlin.group({key:{'name':true},cond:{'name':'foo'},reduce:function(obj,prev){prev.msum+=obj.marks;},initial:{msum:0}}) 
select name,sum(marks) from linlin group by name 
db.linlin.find('this.ID<20',{name:1}) select name from linlin where ID<20 

db.linlin.insert({'name':'foobar','age':25}) insert into linlin ('name','age') values('foobar',25) 
db.linlin.insert({'name':'foobar','age':25,'email':'[email protected]'}) 

db.linlin.remove({}) delete * from linlin 
db.linlin.remove({'age':20}) delete linlin where age=20 
db.linlin.remove({'age':{$lt:20}}) delete linlin where age<20 
db.linlin.remove({'age':{$lte:20}}) delete linlin where age<=20 
db.linlin.remove({'age':{$gt:20}}) delete linlin where age>20 
db.linlin.remove({'age':{$gte:20}}) delete linlin where age>=20 
db.linlin.remove({'age':{$ne:20}}) delete linlin where age!=20 

db.linlin.update({'name':'foobar'},{$set:{'age':36}}) update linlin set age=36 where name='foobar' 
db.linlin.update({'name':'foobar'},{$inc:{'age':3}}) update linlin set age=age+3 where name='foobar' 

官方提供的操作語句對照表: 

上行:SQL 操作語句 
下行:Mongo 操作語句 
CREATE TABLE USERS (a Number, b Number) 
db.createCollection("mycoll") 

INSERT INTO USERS VALUES(1,1) 
db.users.insert({a:1,b:1}) 

SELECT a,b FROM users 
db.users.find({}, {a:1,b:1}) 

SELECT * FROM users 
db.users.find() 

SELECT * FROM users WHERE age=33 
db.users.find({age:33}) 

SELECT a,b FROM users WHERE age=33 
db.users.find({age:33}, {a:1,b:1}) 

SELECT * FROM users WHERE age=33 ORDER BY name 
db.users.find({age:33}).sort({name:1}) 

SELECT * FROM users WHERE age>33 
db.users.find({'age':{$gt:33}})}) 

SELECT * FROM users WHERE age<33 
db.users.find({'age':{$lt:33}})}) 

SELECT * FROM users WHERE name LIKE "%Joe%" 
db.users.find({name:/Joe/}) 

SELECT * FROM users WHERE name LIKE "Joe%" 
db.users.find({name:/^Joe/}) 

SELECT * FROM users WHERE age>33 AND age<=40 
db.users.find({'age':{$gt:33,$lte:40}})}) 

SELECT * FROM users ORDER BY name DESC 
db.users.find().sort({name:-1}) 

SELECT * FROM users WHERE a=1 and b='q' 
db.users.find({a:1,b:'q'}) 

SELECT * FROM users LIMIT 10 SKIP 20 
db.users.find().limit(10).skip(20) 

SELECT * FROM users WHERE a=1 or b=2 
db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } ) 

SELECT * FROM users LIMIT 1 
db.users.findOne() 

SELECT DISTINCT last_name FROM users 
db.users.distinct('last_name') 

SELECT COUNT(*y) FROM users 
db.users.count() 

SELECT COUNT(*y) FROM users where AGE > 30 
db.users.find({age: {'$gt': 30}}).count() 

SELECT COUNT(AGE) from users 
db.users.find({age: {'$exists': true}}).count() 

CREATE INDEX myindexname ON users(name) 
db.users.ensureIndex({name:1}) 

CREATE INDEX myindexname ON users(name,ts DESC) 
db.users.ensureIndex({name:1,ts:-1}) 

EXPLAIN SELECT * FROM users WHERE z=3 
db.users.find({z:3}).explain() 

UPDATE users SET a=1 WHERE b='q' 
db.users.update({b:'q'}, {$set:{a:1}}, false, true) 

UPDATE users SET a=a+2 WHERE b='q' 
db.users.update({b:'q'}, {$inc:{a:2}}, false, true) 

DELETE FROM users WHERE z="abc" 
db.users.remove({z:'abc'});
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久青 | 成人在线精品视频 | 91午夜视频 | 亚洲成人激情av | 欧美日韩在线视频一区 | 欧美精品激情视频 | 欧产日产国产精品v | 成人做爰高潮片免费视频美国 | 欧美福利视频一区二区三区 | 国产午夜亚洲精品理论片大丰影院 | 一级毛片在线观看视频 | 精品一区二区在线观看 | 91aa.app | 免费99热在线观看 | 成人福利软件 | 欧美一区黄色 | 免费毛片视频播放 | 成人国产精品色哟哟 | 日本在线免费观看视频 | 激情视频免费看 | 一起草av在线 | 国产毛片毛片 | 午夜视频免费播放 | 久久久久电影网站 | 日韩视频精品一区 | 久久精品久久久久 | 在线视频 欧美日韩 | www成人在线观看 | www.理论片 | 日本黄色一级毛片 | 成人偷拍片视频在线观看 | 黄色免费小视频网站 | 免费亚洲视频在线观看 | 91色一区二区三区 | 中午字幕无线码一区2020 | 国产成人精品自拍视频 | 在线成人精品视频 | 成人免费观看49www在线观看 | 在火车上摸两乳爽的大叫 | 欧洲精品久久久久69精品 | 久久狂草|