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