標籤:style os io ar for 檔案 資料 cti sp
nonsql 關聯式資料庫
集合 表
文檔 行
啟動mongoDB之前首先手動建立存放MongoDB資料檔案的目錄,如e:\mongo_data
執行命令 mongod --dbpath=e:\mongo_data
這樣麻煩
手動建立一個尾碼名為bat的檔案, 把命令 mongod --dbpath=e:\mongo_data 複製進去,以後執行就可以了。
或者把它當作系統的服務 ,啟動它 在系統服務那邊。
以上操作 mongoDB的伺服器已經啟動了。
mongo localhost:27017 串連 mongoDB伺服器。
MongoDB 常用操作
mydb1 資料庫 c1、user集合
show dbs 顯示所有資料庫
db 查看當前所在的資料庫
show collections 查看當前資料庫中所有的集合
show tables 查看當前資料庫中所有的集合
use mydb1 如果存在這個資料庫則進入,不存在則建立這個資料庫
db.createCollection("集合名稱") 顯示建立集合
db.集合名稱.insert({name:"jack",age:20}); 隱士建立集合
db.集合名稱.drop() 刪除集合
小樣本:
for(var i=0;i<10;i++){
db.user.insert(name:"name"+i,age:i);} 添加了 10條記錄
db.user.count(); 輸出 資料條數
db.集合名稱.remove() 把所有資料刪除
db.user.remove({name:"user0"}) 刪除指定的人
db.user.find() 查詢所有
db.user.find({name:"user2"}); 查詢條件
db.user.findone(); 查詢文檔第一個
第一個框是查詢條件。第二個框顯示 那些列顯示不顯示,
db.user.find({},{name:1}) 顯示name 屬性的 其他的屬性不顯示 1代表顯示 0代表不顯示
db.user.find().sort({age:1}) 根據age來排序 升序
db.user.find().sort({age:-1})根據age來排序 降序
count統計 skip limit 分頁
skip(i)忽略第i條,limit 一頁包含幾條
第一頁4條 skip(0).limit(4)
第二頁4條 skip(4).limit(4)
第三頁4條 skip(8).limit(4)
。。。。。。。。
db.user.find().sort({age:-1}).skip(0).limit(2).count(0) 顯示 幾條結果,看find()查出多少條 不管分頁效果
db.user.find().sort({age:-1}).skip(0).limit(2).count(1) 顯示分頁效果
db.user.find({age:{$gt:5}}) 查詢年紀大於5的
db.user.find({age:{$lt:5}})小於5的
$gte $lte $ne可以帶入以上的命令
$all 數組中內含項目關聯性
樣本
db.user.insert({name:"user11",age:22,post:[1,2,3,4]})
db.user.find({post:{$all:[1,2]}}) post key值中,包含條件中的所有 [1,2]的 都查出來查出來
關聯式資料庫中 select* from user where id in(1,2,3)相當於 nonsql中的下面
$in
db.user.find({post:{$in:[1,99]}}) 只要包含條件中的一個1 或者99 存在其中一個 就都能查出來
$nin 與上面取反
關聯式資料庫中 select* from user where id name="jack" or age=20相當於 nonsql中的下面
$or 兩個不同的條件
db.user.find({$or:[{name:"user1"},{age:8}]}) 查詢 或者的情況, 兩種條件。
$exist:1 存在
$exist:0 不存在
db.user.find({post:{$exists:1}}) 存在 post這個鍵的
db.c1.insert({name:"jack",age:20}); 才會真正形成資料庫的檔案,否則 只存在記憶體中的資料庫。 c1是集合的名字
db.drop.Database(); 刪除資料庫
db.help() 看協助資訊
var x=db.user.find();
x.next();
x.next(); 在記錄中一條一條地遊走 遊標
x.hasNext();
db.collection.update(criteria,objNew,upsert,multi)
criteria:用於設定查詢條件的對象
objNew 用於設定更新內容的對象
upsert:如果記錄已經存在,更新它,否則新增一個記錄,取值為0或1 1已經存在更新 0新增
multi:如果有多個合格記錄,是否全部更新,取值為0或1 1 為更新所有的
注意:預設情況,只會更新第一個合格記錄
一般情況下後兩個參數分別為0,1即:
如果後兩個參數不寫 則預設是 1,0
db.collection.update({},{},0,1);
db.user.update({name:"user1"},{name:"abc"}) 會整條記錄覆蓋 把後面的age也刪除
所以這個時候應該用到 $set
$set 更新值
db.user.update({name:"user3"},{$set{address:"nanjing"}},0,1)
db.user.update({name:"user3"},{$unset:{address:1}},0,1) 把address欄位刪除
$inc 年齡加1
db.user.update({name:"user4"},{$inc:{age:1}})
啟動mongoDB 以及常用操作命令