mongodb日常操作&bug记录

  • 190806更新:今天跑mongo用count()时报了一个错

error: { “$err” : “not master and slaveOk=false”, “code” : 13435 }

stackoverflow一下:https://stackoverflow.com/questions/8990158/

需要在查询前加一行

rs.slaveOk()

  • 日期查询

'$gte' ——大于等于

'$gt' ——大于

'$lte'——小于等于

'$lt'——小于

db.getCollection("表名").find(
    {
        "userId" : 666.0,
        "acceptTime" : {
            "$gte" : ISODate("2019-07-22T04:00:00.000+0800"),
            "$lte" : ISODate("2019-07-22T11:30:00.000+0800")
        }
    },
    {
        "ismale" : 1.0,
        "grade" : 1.0,
        "age" : 1.0
    }
).sort(
    {
        "acceptTime" : -1.0
    }
);

 


  • 嵌套查询

//方法1
db.表名.find(
    {userId:666,
        'college': {
            $class:{
              'ismale':true
           }
        }
    }).sort(
    {
        "acceptTime" : -1.0
    }
)
;

//方法2
db.表名.find(
     {
      userId:666,
    'college.ismale': true
}).sort(
    {
        "acceptTime" : -1.0
    }
)  

 


  • 导出为标准json时,要选export as document array

严谨的json格式。需要注意的是,从MongoDB中导出的json文件其实并不是严谨的json格式表,只是一串json对象排在一起的文档,对象之间并没有用逗号分隔开,以及开头和结尾也缺失包含括号。所以如果你要导入的数据是这样的格式,就不能加入–jsonArray的特性。


  • 聚合,且输出其他字段

db.表名.aggregate([
{$match:{updateTime:{'$gte':'2019-07-30','$lte':'2019-07-31'}}},
{$group:
    {"_id": "$userId",
      count: {$sum: 1},
     "class":{$addToSet:"$class"}
  }
}
])

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值