mongodb命令行操作

mongodb version 3.6

1.数据库操作

查询所有数据库

show dbs;

使用数据库

use [database name]
//switched to db [database name]

新建数据库

use [database name];
//switched to db [database name]
db.test.insert({"test": "test"});
//WriteResult({ "nInserted" : 1 })

删除库

db.dropDatabase();
//{ "dropped" : "[database name]", "ok" : 1 }

2.1集合操作

查询集合

show collections;

删除集合

db.[collection name].drop();
//true

查询集合中数据

db.[collections name].find();

插入数据

db.[collection name].insert({"test":"test"});
//WriteResult({ "nInserted" : 1 })

修改数据

db.[collection name].update({"name": "test"}, {$set: {"name":"newname"}});
//WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

删除数据

db.[collection name].remove({name: "newname"});
//WriteResult({ "nRemoved" : 1 })

创建索引

db.[collection name].createIndex({"[index name]": 1});
//{
//	"createdCollectionAutomatically" : false,
//	"numIndexesBefore" : 1,
//	"numIndexesAfter" : 2,
//	"ok" : 1
//}

删除索引

db.[collection name].dropIndex({"index name": 1});
//{ "nIndexesWas" : 2, "ok" : 1 }

删除一个集合中的所有索引

db.[collection name].dropIndexes();

显示查询时间

db.[collection name].find().explain("executionStats");

2.2管道

$project 查询指定集合中数据

db.[collection name].aggregate({
    {
        $project:{showCollectionItem1: 1, showCollectionItem2:1}
    }
})

$match 查询数据并过滤

db.[collection name].aggregate({
    {
        $match:{
            showCollectionItem1: {$gt: 90}
        }
    }
})

$limit 查询数据并限制查询条数

db.order.aggregate([
    {
        $project:{ trade_no:1, all_price:1 }
    },
    {
        $match:{"all_price":{$gte:90}}
    },
    {
        $sort:{"all_price":-1}
    },
    {
        $limit:1
    }
])

$skip

db.order.aggregate([
    {
        $project:{ trade_no:1, all_price:1 }
    },
    {
        $match:{"all_price":{$gte:90}}
    },
    {
        $sort:{"all_price":-1}
    }
])

$sort

db.order.aggregate([
    {
        $project:{ trade_no:1, all_price:1 }
    },
    {
        $match:{"all_price":{$gte:90}}
    },
    {
        $sort:{"all_price":-1}
    }
])

$group 查询数据并分组

db.[collection name].aggregate({
    {
        $group:{
            _id: "$item_id",
            total: {$sum: "$num"}
        }
    }
})

$lookup

db.order.aggregate([
    {
        $lookup:{
            from: "order_item",
            localField: "order_id",
            foreignField: "order_id",
            as: "items"
        }
    }
])

3.数据库的导出带导入

导出数据库

mongodump -h dbhost -d dbname -o dbdirectory

导入数据库

mongorestore -h dbhost -d dbname path

附录

常用表达式操作符

常用表达式操作符Description
$addToSet将文档指定字段的值去重
$max文档指定字段的最大值
$min文档指定字段的最小值
$sum文档指定字段求和
$avg文档指定字段求平均
$gt大于给定值
$lt小于给定值
$eq等于给定值
©️2020 CSDN 皮肤主题: 技术工厂 设计师:CSDN官方博客 返回首页