mongodb操作记录随笔

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("20191226T23: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 输出的文件地址及文件名

猜你喜欢

转载自blog.csdn.net/hbn1326317071/article/details/103843959