文章 49
评论 20
浏览 81163
MongoDB操作笔记

MongoDB操作笔记

### **查找数据** * 部分字段不存在时查询 `db.post.find({'worksAspectRatio':{$exists:false}}).count()` * 排序查找 `db.col.find({},{"title":1,_id:0}).sort({"likes":-1})` * 更新文档 ```bash db.plan.update({_id:ObjectId("5bce8ffbaff8ca66f919fec1")},{$set:{'left':-1}}) db.post.update({_id:ObjectId("5ac3a35faff8ca244eaf2aec")},{$set:{"tags":["zhangsan","lisi"]}}) db.user.update({_id:ObjectId("5bf77c1faff8ca5b47d8f9a2")},{$set:{"createAt": ISODate("2018-12-17T10:50:54.738Z")}}) ``` 更新表格中没有的字段 比如:数据库中没有该字段,执行此条语句则每条没有该字段的都会加上该字段 ```bash db.activity.update( {"beRobot" : {$exists : true}}, {"$set" : {"beRobot" : false}}, false, true ) db.post.update({'postRate':{$exists:true}},{$set:{'postRate':'D'}})

db.post.aggregate([
{$project:{day:{$substr:["$createAt",0,10]}}},
{$group:{_id:"$day",number:{$sum:1}}},
{$sort:{_id:-1}}
])

### **数据库备份(Linux)**
1. 进入到`/usr/bin`目录下
2. `mongodump -h 127.0.0.1 -d test -o /opt/`
3. 进入`/opt`目录
4.  `zip -q -r test.zip /opt/test/`		将test文件打包
5.  到`mongodb/bin`目录下运行 `mongorestore -h localhost:27017 -d test F:\文件备份\test\opt\test`

### **删除或新增表的一个字段:**

删除一个字段: `db.post.update({},{$unset:{'postSpecialIds':''}},false,true)`
新增一个空字符串字段: `db.post.update({}, {$set: {postSpecialId:""}}, {multi: 1})`。

### **条件查询**
```bash
db.CollectionAAA.find({ "CreateTime" : { "$gte" : ISODate("2017-04-20T00:00:00Z"), "$lt" : ISODate("2017-04-21T00:00:00Z") } }).count()

查询相同字段的个数

db.profile.aggregate([
    { $group: { _id : '$userId', count: { $sum : 1 } } },
    { $match: { count: { $gt : 1} } }
])

db.user.find({
    "phone":{$regex:/^1/},
    "lastLoginAt" : { "$gte" : ISODate("2018-07-20T00:00:00Z"), "$lt" : ISODate("2018-11-09T00:00:00Z") }    	
},{
    _id:0,'phone':1, 'lastLoginAt':1
}).sort({'lastLoginAt':-1}).limit(100).skip(600)

哈哈哈哈哈哈哈嗝~

取消