- 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"}
}
}
])