MongoDB 学习专题(日常篇)MongoDB 常用命令

Posted 盛夏温暖流年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 学习专题(日常篇)MongoDB 常用命令相关的知识,希望对你有一定的参考价值。

查看所有集合:

show collections

创建集合:

db.createCollection('user')

删除集合:

db.collection_name.drop()

给集合中插入对应数据:

db.user.insert([name:'jcy',phone:'15646464867',name:'cam',phone:'13845769584'])

查看集合数据:

//  简单查询
db.user.find()
// 美化后的查询
db.user.find().pretty()
// 查询一条数据
db.user.findOne()
// 根据条件查询
db.user.find(name:'cam')
// 根据条件和属性进行查询(姓名为 cam,只显示 name 字段)
db.user.find(name:'cam', name:1,_id:0)
// 只显示 name 字段,根据 name 进行倒序排序
db.user.find(,name:1).sort(name:-1)
// 只显示 name 字段,根据 name 进行倒序排序,跳过一条,仅显示两条
db.user.find(,name:1).sort(name:-1).skip(1).limit(2)

查看集合条件匹配符的查询:

// 查找 age 大于等于 20,只显示 age
db.user.find(
  age: 
      $gte: 20,
  ,
, 
  age: 1,
);

// $gte 和 $lt 一同使用
db.user.find(
    age: 
        $gte: 20,
        $lt: 40,
    ,
, 
    age: 1
);

// $in 的使用
db.user.find(
    age: 
        $in: [23, 24, 25, 26],
    ,
, 
    age: 1
);

$or 和 $and 的使用:

// $or 的使用
db.user.find(
    $or: [
        
            age: 
                $gte: 40,
                $lt: 60
            ,
        , 
            tags: 'A',
        
    ]
).pretty();

// $and 的使用
db.user.find(
    $and: [
        
            age: 
                $gte: 20,
                $lt: 60,
            ,
        ,
            tags: 'B',
        ,
    ],
).pretty();
// $and 简写形式
db.user.find(
    age: 
        $gte: 20,
        $lt: 60
    ,
    tags: 'B'
).pretty();

匹配对象数组中的元素:

// 用 $elemMatch 匹配对象数组中的元素(必须是一个数组元素同时满足以下两个条件才可以)
db.user.find(
    properties: 
        $elemMatch: 
            channel: 'channel_1',
            openId: 'open_id_1',
        ,
    ,
).pretty();

更新数据:

// $set 更新一条记录
db.user.update(
    id: 123,
, 
    $set: 
        name: '0001',
    ,
);
// 更新多条记录
db.user.updateMany(
    name: "cam"
, 
    $set: 
        age: 15
    ,
);

更新数组对象:

// 用 $elemMatch 更新对象数组中的对应元素
// 'properties.$.openId' 中的 $ 代表的是更新的是搜索结果中匹配的数据项
db.user.update(
    properties: 
        $elemMatch: 
            channel: 'channel_id_2',
            openId: 'open_id_2_10002'
        ,
    ,
, 
    $set: 
        'properties.$.openId': 'open_id_2_10002_x'
    
);

普通数组中增加一个元素:

// $push 在数组中增加一个元素
db.user.update(
    phone: '13312310001',
, 
    $push: 
        tags: 'X'
    ,
);

对象数组中增加一个对象元素:

// $push 在对象数组中增加一个对象元素
db.user.update(
    phone: '13312310001',
, 
    $push: 
        properties: 
            channel: 'channel_id_3',
            channelName: 'channel_name_3',
            openId: 'open_id_3_pushed'
        ,
    ,
);

删除集合数据(硬删除):

// 全部删除集合数据(慎用)
db.collection.remove()
// 根据具体 id 进行删除
db.collection.remove("_id" : ObjectId("61dff68333819d842b5519a4"))

aggregate 基本用例:

db.user.aggregate([
    $match: age: $gt: 30,
    $project: tags: 1, age: 1,
    $unwind: '$tags',
    $group: 
        _id: '$tags',
        sumAge: $sum: '$age',
        count: $sum: 1,
        avgAge: $avg: '$age',
    ,
]);

aggregate 复杂用例:

// 按年龄段统计出身份信息
db.user.aggregate([
    $project: 
        ageLevel: $floor: $divide: ['$age', 10],
        name: 1,
        phone: 1,
    ,
    $group: 
        _id: '$ageLevel',
        phones: $push: 
            phone: '$phone',
            userId: '$_id',
            name: '$name',
        ,
    ,
    $sort: $_id: 1,
]);

以上是关于MongoDB 学习专题(日常篇)MongoDB 常用命令的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 学习专题(日常篇)MongoDB 常用命令

MongoDB 学习专题(基础篇)MongoDB 入门

MongoDB 学习专题(基础篇)MongoDB 入门

MongoDB索引 --- 入门篇:学习使用MongoDB数据库索引

mongoDB应用篇-mongo聚合查询

MongoDB专题