mongoose1

作者: 余生筑 | 来源:发表于2017-12-01 16:48 被阅读11次

连接数据库

const mongoose=require('mongoose')

//连接本地服务器的mongodb数据库what_i_love,如果没有此数据库,则自动创建一个新库
const url='mongodb://localhost/what_i_love'
const connection=mongoose.connect(url,{useMongoClient:true});//生成连接串

类似于

 <connectionStrings>
        <add name="connStr" connectionString="server=localhost;
         database=what_i_love/>
</connectionStrings>

生成模型类

const Schema=mongoose.Schema

const UserSchema=new Schema({
    name:{type:String,required:true,unique:true,index:1},
    age:{type:Number,max:188,min:0},
});

const UserModel=mongoose.model('user',UserSchema);
//数据库中将添加一个新表users,

CRUD

注意:针对UserModel的操作都是数据持久化操作(直接修改数据库中的数据)。

  • create
    const u=await UserModel.create({
        name:"laoyang",
        age:20,
    });
    return u;

等效于

db.users.inserOne({name:"laoyang",age:20})
  • update
  const u=await UserModel.update(
{name:"laoyang"},
{age:40});
    return u;

等效于

db.users.update({name:'laoyang'},{$set:{age:40}})

注意UserModel.update操作,即使不带$set,也不会洗掉其他字段

  • 做下优化,降低一下耦合度
(async (params)=>{

    const filter={}

    if(params.name)
    {
    filter.name=params.name
    }

    if(params.projection)
    {
        projection=params.projection
    }

    const u=await UserModel.update(filter,params.projection);
    return u;
})({
    name:"laoyang",
    projection:{
        age:40
    }
})

相关文章

  • mongoose1

    连接数据库 类似于 生成模型类 CRUD 注意:针对UserModel的操作都是数据持久化操作(直接修改数据库中的...

网友评论

      本文标题:mongoose1

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