mongo常用方法合集

简介: mongo常用方法合集

1. 表长度 count()/countDocuments()/countDocuments()

count()/countDocuments()/countDocuments()
在高版本的mongoose中,count()不建议使用

db.user.count({})

db.user.find({}).count()

2.排序 sort()

sort函数可以将查询结果数据进行排序操作;
该函数的参数是一个或多个键/值对,键代表要排序的键名,值代表排序的方向,1是升序,-1是降序;
同时,也可以省略键值

//创建时间倒序排列
db.user.find().sort({"create_time":-1})

//按年龄升序,创建时间倒序排列
db.user.find().sort({"age":1,"create_time":-1})

image.png

3.skip() 跳过多少条数据

skip()函数为跳过多少条数据,一般和limit()同用,取值为数字

//按create_time倒序排序,跳过两条数据
db.user.find().skip(2).sort({"create_time":-1})

4. limit() 展示多少条数据

limit()函数为展示多少条数据,,取值为数字

//按create_time倒序排序,跳过两条数据,并展示两条数据
db.user.find().skip(2).limit(3).sort({"create_time":-1})

5. distinct()字段去重

Parameters

  • field «String» 必填 需要去重的字段
  • [conditions] «Object» optional 选填 筛选条件
  • [callback] «Function» 选填,一般不用

distinct()可以获取某个字段的所有取值,返回值为数组

db.user.distinct("age")

db.user.distinct("age",{"vip":true})

6.populate() 关联字段

注意⚠️:
A.此方法一般在可视化工具上无法使用,在代码中可以使用
B.创建 Model 的时候,可给该 Model 中关联存储其它集合 _id 的字段设置 ref 选项。ref 选项告诉 Mongoose 在使用 populate() 填充的时候使用哪个 Model。
在创建文档时,保存 refs 字段与保存普通属性一样,把 _id 的值赋给它就好了
例如:

//organ
const Organ = new Schema({
    name: {
        type: String,
        index: true
    },

    create_time: {
        type: Date,
        default: () => new Date(),
    }
});
//user
const User = new Schema({
    name: {
        type: String,
        index: true,
        default:null
    },
    age: {
        type: Number,
        default: 0
    },
    register_time: {
        type: Date,
        default: Date.now()
    },
    remark: {
        type: String,
        default:null
    },
    vip: {
        type: Boolean,
        default: false,
    },
    address: {
        type: String,
        default:null,
    },
    organ_id: {
        type: mongoose.Types.ObjectId,
        default: "",
    }
});

populate({ objParam })
objParam:

  • path:需要 populate 的字段。
  • populate:多级填充。
  • select:从 populate 的文档中选择返回的字段。
  • model:用于 populate 的关联 model。如果没有指定,populate 将根据 schema 中定义的 ref 字段中的名称查找 model。可指定跨数据库的 model。
  • match:populate 查询的条件。
  • options:populate 查询的选项。
    • sort:排序。
    • limit:限制数量
      db.user.findOne({name:"Jom"})
         .populate({
             path: 'organ_id',
             model:"Organ",
             select: "name"
         }
      
目录
相关文章
|
7月前
|
NoSQL 关系型数据库 MySQL
深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析
在 MongoDB 中,我们使用 find() 和 find_one() 方法来在集合中查找数据,就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样
135 1
|
7月前
|
存储 NoSQL MongoDB
学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程
Python 需要一个 MongoDB 驱动程序来访问 MongoDB 数据库。我将使用 MongoDB 驱动程序 PyMongo 建议您使用 PIP 来安装 PyMongo。PIP 很可能已经安装在您的 Python 环境中。将命令行导航到 PIP 的位置,然后键入以下内容:
181 1
|
前端开发 关系型数据库 MySQL
零基础带你学习MySQL—字符串相关的函数(十三)
零基础带你学习MySQL—字符串相关的函数(十三)
|
存储 NoSQL Redis
零基础小白?带你阅读Redis源码,从零开始分析Set整数集合模型
>之前就说了要来西索Redis,现在来辣! > >本文的部分内容参考自《小林Coding》,部分地方根据源代码进行剖析。 > >Redis源码地址:https://github.com/redis/redis.git ### 观其面 **无序、唯一**的键值结合。 > 这个无序,不是指定没有大小顺序或者字典序,而是不按照插入顺序 Set 类型和 List 类型的区别如下: - List 可以存储重复元素,Set 只能存储非重复元素; - List 是按照元素的先后顺序存储元素的,而 Set 则是无序方式存储元素的。 Set的底层数据结构是由哈希表或者证书集合实现的。 - 如果集合中
81 4
零基础小白?带你阅读Redis源码,从零开始分析Set整数集合模型
|
SQL 关系型数据库 MySQL
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(五)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
144 0
|
SQL 安全 关系型数据库
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(二)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
102 0
|
SQL 关系型数据库 MySQL
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(三)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
86 0
|
关系型数据库 MySQL 数据库
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(四)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
113 0
|
SQL 关系型数据库 MySQL
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(一)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
249 0
|
SQL 关系型数据库 MySQL
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法(六)
MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法
215 0