gongodb的使用步骤
- /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- brew install mongodb
- 启动mongo服务器 mongod --dbpath=/Users/lanou/Desktop/nodejs/mon
- 进入mongodb环境 mongo
- 查看数据库 show dbs
- 选择要操作的数据库--》use DBNAME(数据库名)
- 查看集合 show collections
- 查看集合里的内容 db.COLLECTIONS.find()
- 查看当前操作的数据库 db或者 db.getName()
创建数据库
-
先use 要创建的数据库名
-
添加数据通过 db.COLLECTIONS.insert({name:"张三",age:19})
创建一个数据库名为test 集合名称为mytest
添加数据 {name:"苹果",price:"¥5888",type:"32G"} {name:"三星",price:"¥3888",type:"64G"}
终端命令:use test db.mytest.insert([{name:"苹果",price:"¥5888",type:"32G"},{name:"三星",price:"¥3888",type:"64G"}]) show dbs use test show collections db.mytest.find()
删除数据库 终端命令:
db.dropDatabase()
创建集合 db.createCollection("集合名")
删除集合 db.集合名词.drop();
数据操作 增加
db.person.insert({name:"王五",age:19,hobby:{hobby1:"篮球",hobby2:"唱歌"},height:"185cm"})
db.COLLECTIONNAME.insert({name:"张三",age:19});
如果能找到id能找到就是更新,如果找不到就是添加
db.SOLLECTIONNAME.save({name:"李四",age:19})
更新操作
db.SOLLECTIONNAME.save({id:"",name:"李四",age:19})
更新 update
db.COLLECTIONNAME.update({条件},{更新的内容},{配置项})
两个参数:db.person.update({name:"大佬"},{$set:{name:"王健林"}})更新一条
三个参数:db.person.update({name:"王健林"},{$set:{age:52}},{multi:true})更新多条
删除操作remove()
DELETE FROM users WHERE id=7;数据库删除
默认删除多条数据
db.COLLECTIONNAME.remove({name:"张三"},{配置项(可选)})
db.COLLECTIONNAME.remove({name:"张三"},{justOne:true})删除一条
查询操作
db.person.find()
格式化数据db.person.find().pretty();
find({条件},{字段}
查询年龄大于30的数据
条件 大于gt, 小于lt, 大于等于gte , 小于等于lte ,不等于 ne, 等于 直接冒号
db.person.find({age:{$gt:30}})
{ "_id" : ObjectId("5a67f83491613a009ed3608a"), "name" : "王健林", "age" : 52 }
{ "_id" : ObjectId("5a67f9e991613a009ed3608b"), "name" : "王健林", "age" : 52 }
选取一个字段1和true都可以
db.person.find({age:{$gt:30}},{name:1})
{ "_id" : ObjectId("5a67f83491613a009ed3608a"), "name" : "王健林" }
{ "_id" : ObjectId("5a67f9e991613a009ed3608b"), "name" : "王健林" }
查询所有以王作为开头的
select * from user like "王%";数据库查询
db.COLLECTIONNAME.find({name:/^王/})
查询数据名字是王健林并且年龄是52
db.COLLECTIONNAME.find(name:"王健林",age:52})
或者关系
年龄等于18或者52
db.COLLECTIONNSME.find({$or:[{age:18},{age:52}]})
db.person.find({$or:[{age:52},{age:18}]})
{ "_id" : ObjectId("5a67f83491613a009ed3608a"), "name" : "王健林", "age" : 52 }
{ "_id" : ObjectId("5a67f9e991613a009ed3608b"), "name" : "王健林", "age" : 52 }
{ "_id" : ObjectId("5a67fcc491613a009ed3608d"), "name" : "张三", "age" : 18 }
要求 王字开头,并且年龄大于三十
db.person.find({name:/^王/,age:{$gt:30}})
分页相关
db.COLLECTIONNAME.find().skip(2).limit(2);
排序查询1正序-1倒序
db.COLLECTIONNAME.find().sort(age:1)
查询所有行王的和姓张的,按照年龄倒序排序,只显示查询结果的两条
db.person.find({$or:[{name:/^张/},{name:/^王/}]}).sort({age:-1}).limit(2)
db.person.find({$or:[{name:/^张/},{name:/^王/}]}).sort({age:-1}).skip(0).limit(2)
统计数量
SELECT COUNT(*)FROM USERS数据库查询
db.COLLECTIONNAME.find().count();
node下的mongoose
在使用之前要再终端输入命令,打开数据库
mongod --dbpath 路径
新建个终端页面输入
mongo
var mongoose=require("mongoose");
mongoose.connect("mongodb://localhost:27017/users");
var db=mongoose.connection;
db.on("error",function(error){
if(error){
return console.log(error);
}
})
db.on("open",function(){
console.log("数据库连接成功");
})
var Schema=mongoose.Schema({
name:{type:String},
age:{type:Number,default:20}
},{collection:"person"});
var Model=db.model("person",Schema);
Model.find({},{},function(err,data){
if(err){
return console.log(err);
}else{
console.log(data);
}
})
Model.find({age:{$gt:30}},{name:1},function(err,data){
if(err){
return console.log(err)
}else{
console.log(data);
}
})
//es6 promise
Model.find({age:{$lt:30}},null).then(function(data){
console.log(data);
}).catch(function(err){
console.log(err);
})
Model.find({age:{$lt:30}},null).then((data)=>{
console.log(data);
}).catch((err)=>{
console.log(err);
})
// 查询姓李和姓王的
Model.find({$or:[{name:/^王/},{name:/^马 /}]},null).then((data)=>{
console.log(data);
}).catch((err)=>{
console.log(err);
})
//添加
Model.create({name:"周宏伟",age:50},function(err,data){
if(err){
return console.log(err)
}else{
console.log(data);
}
})
//更新
Model.update({name:"李刚"},{$set:{age:35}}, {multi:true},function(err,data){
if(err){
return console.log(err)
}else{
console.log(data);
}
})
//删除
Model.remove({name:"马云"},function(err,data){
if(err){
return console.log(err)
}else{
console.log(data);
}
})
//游标操作
Model.find({},{},{sort:{age:-1}},function(err,data){
if(err){
return console.log(err);
}else{
console.log(data);
}
})
Model.find().sort({age:-1}).then((data)=>{
console.log(data)
}).catch((err)=>{
console.log(err);
})
Model.find({},{},{sort:{age:-1},skip:2,limit:2},function(err,data){
if(err){
return console.log(err);
}else{
console.log(data);
}
})
网友评论