1. 程式人生 > >mongodb 簡單的增刪改查功能實現

mongodb 簡單的增刪改查功能實現

>show dbs #顯示當前mongodb的資料庫有哪些庫
ctrl+c 退出客戶端--》關閉
>use mydb;
>db; #顯示當前是哪個資料庫
//user在mongo中叫集合collection 
//每行資料,被稱為一個文件
bson --- json
db.user.insert({uname:"tom",pwd:"abc123",height:173,birthday:ISODate("1997-10-01")}) 
show collections; #顯示當前資料庫集合
db.user.find();#查詢資料庫
db.user.insert({uname:"jack",pwd:"abc234",height:175,birthday:ISODate("1998-09-15")}) 

db.user.insert({uname:"rose",pwd:"a567",sex:1,height:176,birthday:ISODate("1987-08-25")}) 


------------------------------------------------------------------
bson ---json
json(javascript object notation )
key:value結構的字串{"key1":"value1","key2":"value2"}
json與xml對應,是網路傳輸的重要資料格式

bson(Binary Serialized Document Format)
json所有的資料庫都是字串,bson有整型/日期型等
bson有三個特點:輕量性,可遍歷性,高效性

db.user.insert({uname:"john",pwd:"a567",sex:1,height:165,birthday:ISODate("1989-07-21"),address:["地址1","地址2","地址3"]}) 

//內嵌型文件結構 體現一對多 多對一關係 在資料裡直接顯示了 不需要聯合查詢了 速度快遠遠高於關係型資料庫
db.user.insert({uname:"timy",pwd:"a567",sex:1,height:165,birthday:ISODate("1989-07-21"),
address:["地址1","地址2","地址3"],
phone:[
{pno:"13122213211",cs:"聯通"},
{pno:"18111132116",cs:"聯通"},
{pno:"13922888666",cs:"聯通"}
]
}) ;

db.user.insert({uname:"jack2",pwd:"a567",sex:1,height:165,birthday:ISODate("1989-07-21"),
address:["地址1","地址2","地址3"],
phone:[
{pno:"13122213211",cs:"聯通"},
{pno:"18111132116",cs:"聯通1"},
{pno:"13922888666",cs:"聯通3"}
]
}) ;

db.user.insert({uname:"rose",pwd:"a567",sex:1,height:165,birthday:ISODate("1989-07-21"),
address:["地址1","地址2","地址3"],
phone:[
{pno:"13122213211",cs:"聯通"},
{pno:"18111132116",cs:"移動"}
]
}) ;

db.user.insert({uname:"trasy",pwd:"a567",sex:1,height:165,birthday:ISODate("1989-07-21"),
address:["地址1","地址2","地址3"],
phone:[
{pno:"13122213211",cs:"聯通"},
{pno:"18111132116",cs:"移動"}
]
}) ;
//檢視資料個數
db.user.find().count();

//增刪改查
刪:條件的刪除
db.user.remove({uname:"jack"})


查:條件的檢視
db.user.find({uname:"jack"});
db.user.find({uname:"tom"});
db.user.find({uname:/j/});//模糊查詢 正則表示式
db.user.find({height:{$gt:170,$lt:180}}); //大於170 小於180
db.user.find({birthday:{$lt:ISODate("1997-10-01")}}); //小於97年的
db.user.find().limit(5);//顯示5條資料
db.user.find().skip(10).limit(5); //跳過前面10條 ,查後面的5條 分頁

修改
db.user.update({uname:"tom"},{$set:{pwd:"123456"}});
插入 for迴圈是js語法
for(i=0;i<1000;i++){
 db.user.insert({uname:"tom"+i,pwd:"abc123",height:173,birthday:ISODate("1997-10-01")});
}


cls 清屏

內嵌文件的增刪改查
db.user.drop();//刪除集合

//查詢  廠商是移動的使用者資訊
db.user.find({phone:{$elemMatch:{cs:"移動"}}});

 
//修改
db.user.update({uname:"trasy","phone.pno":"13122213211"},{$set:{"phone.$.cs":"移動233"}});

 db.user.update({uname:"trasy"},{$push:{phone:{pno:"13122213211",cs:"聯通66666"}}});//插入子集合資料

 db.user.update({uname:"trasy"},{$pull:{phone:{pno:"13122213211",cs:"聯通66666"}}});//移除子集合資料