聚合
根据关键字match的数量排序:
db.doc.aggregate([ {"$unwind": "$tags"}, {"$match": {"tags":{"$in":["js","es6","promise"]}}}, {"$group": {"_id": "$_id", "count": {"$sum": 1}}}, {"$sort": {"count": -1}} ]);
filter一个字符串数组,返回条件中出现的关键字
假设数据为:{"tags": ["js", "mongo", "nodejs"], "count": 1}, {"tags": ["js", "nodejs"], "count": 1}, {"tags": ["js", "angularjs", "mongo"], "count": 2}, {"tags": ["js", "angularjs", "mongo"], "count": 4}, {"tags": ["js", "es6"], "count": 1}
match tags= [“js”,”es6”,”promise”];并返回match到的tag。
db.doc.aggregate([ {'$unwind': '$tags'}, { '$match': { "tags": {"$in": ["js","es6","promise"]} } }, { '$group': { '_id': '$tags', 'tags': {'$first': '$tags'}, 'count': {'$sum': '$count'}, } }, { "$project": { "tags": 1, "count": 1, "_id": 0 } } ]) //返回 { "tags" : [ "js" ] ,"count":9} { "tags" : [ "es6" ] ,"count":1}
备份和恢复
//备份
//bson
mongodump --db database -u login_name -p pass --out ~/Downloads/
//gzip
mongodump --gzip --db database -u login_name -p pass --out ~/Downloads/
//恢复数据库
mongorestore -h 127.0.0.1 -d database -u login_name -p pass --dir dbDir/
//恢复表
mongoexport -h 127.0.0.1 -d database -u login_name -p pass -c collection <--drop> --out collection.bson
mongoimport -h 127.0.0.1 -d database -u login_name -p pass -c collection --type json -f dump/collection.json --jsonArray