mongodb

作者: likeli | 来源:发表于2018-01-29 21:39 被阅读0次

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);
      }
  })

相关文章

网友评论

      本文标题:mongodb

      本文链接:https://www.haomeiwen.com/subject/uhbfzxtx.html