一、登录mongodb
mongosh --port=27017 -u root -p root --authenticationDatabase admin
二、查询指令
1、查询所有数据库
show dbs;
2、使用数据库
use 数据库名;
3、查询所有集合
show collections;
4、查询集合
db.集合名.find();
5、查询集合指定字段
db.集合名.find({"查询字段","查询值"});
6、查询只显示某个字段
db.集合名.find({},{"要查询的字段":1);
7、查询不显示某个字段
db.集合名.find({},{"不查询的字段":0);
8、模糊查询字符串
db.集合名.find({ 查询字段 : /查询值/ });
9、模糊查询非字符串
db.集合名.find({
"$expr": {
$regexMatch:{"input":{ "$toString":"$查询字段"},"regex":/查询值/} }
});
10、查询选中集合所有字段
mr = db.runCommand({
"mapreduce" : "具体集合名",
"map" : function() {
for (var key in this) { emit(key, null); }},
"reduce" : function(key, stuff) { return null; },
"out": "具体集合名" + "_keys"});
db[mr.result].distinct('_id');
11、去重
db.集合名.distinct("去重字段");
12、去重计数
db.集合名.aggregate(
{"$group":{"_id":"$分组字段","字段别名":{"$sum":1}}},
{"$sort":{"字段别名":-1}});
13、左连接
db.集合名.aggregate([
{ $lookup:{ from:"关联集合名",
localField:"集合ID",foreignField:"关联集合ID",as:"新集合别名" }},
{$match:{"新集合别名":{$ne:[]}}} ]);
14、左连接加条件和限制新集合个数
db.集合名.aggregate([
{$match:{"条件字段":"查询数据"} },
{ $lookup:{ from:"关联集合名",
localField:"集合ID",foreignField:"关联集合ID",as:"新集合别名" } },
{$match:{"新集合别名":{$ne:[]} } },
{ $project: { 主输出字段1:1, 主输出字段2:1,新集合别名的别名: { $slice: ["$新集合别名", 限制子个数 ] } }}
]);