一个mongodb中可以建立多个数据库
mongodb的默认数据库为db,该数据库存储在data目录中
mongodb的单个实例可以容纳多个独立的数据库,每个都有自己的集合和权限,不同的数据库放置在不同的文件中
mongoose
mongoose是 mongoDB的一个对象模型工具 ,是基于node-mongodb-native开发的mongoDB的nodejs驱动,可以在异步的环境下执行 。同 时它也是针对mongoDB操作的一个对象模型库,封装了mongoDB对文档的一些增删改查等常用方法,让nodejs操作mongoDB数据库变得更加容易
可以将非关系型数据库转为关系型数据库
可以限制字段的类型
mongoose有promise的用法形式,可以链式操作
const mongoose = require( " mongoose " ); // 定义连接的数据库地址和数据库名称 const url = " mongodb://127.0.0.1:27017/demo3 " ;
//连接数据库demo3
mongoose.connect(url,(err)=>{
    //判断是否连接成功
    if(err){
        console.log("连接失败");
    }else{
        console.log("连接成功");
//创建新表,并规定表中的数据类型
// 参1:需要连接的表(mongoose会自动将这个表加s)
// 参2:字段的类型对象(字段的配置项),是一个对象
// model为函数(相当于构造函数,Stu为函数名)
const Stu = mongoose.model("user",{
    name:String,
    age:Number
//增(想要增加多条数据,就要创建多个对象)
const stu1 = new Stu({
    name:"",
    age:13
stu1.save().then((data)=>{
   // 回调函数中只有一个参数data,没有err
    //data为增加到数据库中的数据
    console.log(data)
Stu.remove({
    name:""
}).then((data)=>{
     //回调函数中只有一个参数data,没有err
    //data为删除的数据的条数,删除是否成功
    console.log(data);//{ n: 4, ok: 1 }
Stu.update({
    name:""
    $set:{
        "age":222
}).then((data)=>{
    //{ n: 1, nModified: 1, ok: 1 }
    console.log(data)
//查  所有数据(链式操作,查找后输出)
Stu.find().then((data)=>{
    //回调函数中只有一个参数data,没有err
    console.log(data);
//查  指定数据
Stu.find({name:""}).then((data)=>{
    console.log(data)
//查  指定的列
Stu.find({},{"name":2,"_id":0}).then((data)=>{
    console.log(data);
//查  第一条数据
Stu.findOne().then((data)=>{
    console.log(data);
//升序
Stu.find().sort({"age":1}).then((data)=>{
    console.log(data);
//降序
Stu.find().sort({"age":-1}).then((data)=>{
    console.log(data);
//查找比较 > 、<、>=、<=
Stu.find({age:{$gt:15}}).then((data)=>{
    console.log(data);
Stu.find({age:{$lt:15}}).then((data)=>{
    console.log(data);
//>= <=
Stu.find({age:{$gte:12,$lte:18}}).then((data)=>{
    console.log(data);
//不等于
Stu.find({age:{$ne:13}}).then((data)=>{
    console.log(data);
//模糊查询(正则)
Stu.find({name:/孙/}).then((data)=>{
    console.log(data);
Stu.find({name:/^王/}).then((data)=>{
    console.log(data);
Stu.find({name:/王$/}).then((data)=>{
    console.log(data);
//or或者
Stu.find({$or:[{name:""},{name:""}]}).then((data)=>{
    console.log(data);
//分页
//limt
Stu.find().limit(2).then((data)=>{
    console.log(data);
//skip()
Stu.find().skip(1).then((data)=>{
    console.log(data);
Stu.find().skip(1).limit(1).then((data)=>{
    console.log(data);
//包含$in,查找年龄是13和17的数据(注意,不是范围)
Stu.find({age:{$in:[13,17]}}).then((data)=>{
    console.log(data);

///
包含$nin,查找年龄不是13和17的数据(注意,不是范围)
Stu.find({age:{$nin:[13,17]}}).then((data)=>{
    console.log(data);