Mongodb

  • 启动服务,并设定mongoDB的存储路径

    mongod --dbpath 路径

  • 启动mongo客户端,运行在控制台输入mongo命令

    $ mongo

  • 显示当前存储位置所有的数据库

    $ show dbs

  • 切换/创建 数据库

    $ use 数据库名

  • 打印当前所处的数据库

    $ db

  • 为数据库创建集合

    $ db.createcollection ("集合名")

  • 在集合里面插入数据 / 如果集合不存在,会隐式的创建集合

    $ db.集合名.insert (bson)

  • 查找集合中的数据

    $ db.集合名.find ( 【条件】 )

  • 删除数据

    $ db.集合名.deleteone ( 【条件】)

    $ db.集合名.deleteMany( 【条件】)

  • 删除集合

    $ db.集合名.drop()

Mongoose

条件操作符
### 条件操作符
$ or    或关系 
$ nor    或关系取反
$ gt    大于 
$ gte    大于等于 
$ lt     小于 
$ lte    小于等于 
$ ne         不等于 
$ in          在多个值范围内 
$ nin         不在多个值范围内 
$ all        匹配数组中多个值 
$ regex   正则,用于模糊查询
$ size   匹配数组大小 
$ maxDistance  范围查询,距离(基于LBS) $mod   取模运算 
$ near   邻域查询,查询附近的位置(基于LBS) $exists   字段是否存在
$ elemMatch  匹配内数组内的元素 
$ within  范围查询(基于LBS) 
$ box    范围查询,矩形范围(基于LBS)
$ center 范围醒询,圆形范围(基于LBS) $centerSphere  范围查询,球形范围(基于LBS) $slice    查询字段集合中的元素(比如从第几个之后,第N到第M个元素)


user为数据库暴露的接口
//统计总数
users.estimatedDocumentCount( function( err, data ){
    console.log(data)
} )  

//统计总数,条件为 user = "T元素"
users.countDocuments( {user: "T元素"}function( err, data ){
    console.log(data)} )//从第几个开始查找
user.find().skip()//查找多少个
user.find().limit()//    组合用法       exec 执行前面操作
user.find().skip( 0 ).limit( 10 ).exec( (err, data) => {
    console.log(data);
    // => 输出第 0 条到第 9 条 数据
} );

//排序   -1 倒叙(降序)  1正序(升序)
user.find().sort({ _id: -1 })-----------------------------------------------------------------
//ref( “关联的数据表名” )
// populate 自动去关联的表里查找对应的数据
数据表.find().populate(“ 有ref的字段 ” ).exec( (err, data) => {
    console.log( data )
} )
Schema({
    author: { ref: "user", type: mongoose.Schema.TypeObjectId }
})
-例
    article.find( (err, data) =>{
        user.findById( data[0].author );
       
       });

-//一个用户发表多篇文章,每篇文章有单独的ID
//跳过文章 ID 为 1 的文章
    article.find().populate( {
        path: "author",
        sort: {_Id: 1},
        skip: Number,
        //数据嵌套时可以在populate
    } ).exec( (err, data) =>{
        console.log(data);
    })

----------------------------------
//selecr 选择 筛选

user.findOne( {username: "goudan"} ).select( "password" ).exec( (err, data) =>{
    console.log(data)//=> 输出密码一条数据
} )//出现 账号 和 密码 空格隔开
user.findOne( {username: "goudan"} ).select( "username password" ).exec( (err, data) =>{
    console.log(data)//=> 输出密码一条数据
} )//另一种写法
//完整写法 传对象
数据表.find().populate( {  path: "有ref的字段",select: "password"} ).exec( (err, data) => {
    console.log( data );    // => 筛选 只输出 密码
} )
//简写 传字符串
数据表.find().populate( "有ref的字段""password" ).exec( (err, data) => {
    console.log( data );    // => 筛选 只输出 密码
} )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值