mongodb操作记录随笔
基础操作
like查询
db.getCollection(‘test_document’).find({billNo:{$regex:/0601/}})
db.getCollection(‘test_document’).find({billNo:{$regex:"^0701*"}})
in查询
{billNo:{$in:[‘10086’,‘10010’]}}
日期查询
{‘updateDate’:{ g t e : I S O D a t e ( " 2019 − 12 − 26 T 23 : 59 : 59 Z " ) , gte:ISODate("2019-12-26T23:59:59Z"), gte:ISODate("2019−12−26T23:59:59Z"),lt: ISODate (“2019-12-27T23:59:59Z”)}}
更新字段
db.getCollection(‘test_document’).update(
{
“_id” : “10086”
},
{
$set: { “status” : “0”,“statusName” : “draft”}
},
{
“multi” : false,
“upsert” : false
}
);
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
排序
db.getCollection(‘test_document’).
find({‘auditTime’:{$gte:ISODate(“2019-05-01T00:00:00Z”),
$lt:ISODate(“2019-05-16T12:00:00Z”)}}).sort({‘billNo’:1})
exists查询
db.records.find( { b: { $exists: false } } )
db.getCollection(‘test_document’).find({ ‘billInfos.payOverDate’: { $exists: true },‘invoiceDate’: { $exists: false }})
不等于 $ne
db.things.find( { x : { $ne : 3 } } );
分组查询
db.test_document.aggregate( [
{ $match: { ‘type’:‘20’ } },
{
$group: {
_id: “$headerId”,
total: { $sum: 1 }
}
},
{ $match: { total: { $gt: 2 } } }])
删除记录
db.test_document.remove({‘billNo’:‘10086’})
mongodb导出记录
mongoexport -h 127.0.0.1 --port 27017 -u test -p test123 连接数据库
-d mepscommon 指定数据库名称
-c bills 指定文档名称,bills可以更换,查询不同的文档可以替换成你需要的文档名
-f “billNo,createdDate,createdBy,createdName,status,deptName” 你需要导出的字段名,若有两层结构,可一级字段点二级字段。如billInfos.status
-q “{‘createdDate’:{’$gte’:{$date:‘2019-05-09T08:00:00Z’},’$lt’:{$date:‘2019-05-09T08:59:59Z’}}}” 查询过滤条件
–type=csv 文件格式,一般导出为csv格式
-o D:\test\20190508.csv 输出的文件地址及文件名