mongo常用方法合集

简介: mongo常用方法合集

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

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

db.user.count({})

db.user.find({}).count()
AI 代码解读

2.排序 sort()

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

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

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

image.png

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

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

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

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

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

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

5. distinct()字段去重

Parameters

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

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

db.user.distinct("age")

db.user.distinct("age",{"vip":true})
AI 代码解读

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(),
    }
});
AI 代码解读
//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: "",
    }
});
AI 代码解读

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"
         }
      
      AI 代码解读
目录
打赏
0
0
0
0
13
分享
相关文章
解决Git中fatal: refusing to merge unrelated histories
Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。 一、fatal: refusing to merge unrelated histories 今天在使用Git创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。
109343 6
BootStrap在Vue中的安装使用详细教程
这篇文章提供了在Vue项目中安装和使用Bootstrap的详细教程,包括安装jQuery、引入Bootstrap、配置Webpack以及在项目中进行测试和查看效果的步骤。
BootStrap在Vue中的安装使用详细教程
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
11806 17
阿里云服务器怎么登陆,常见登陆方式教程参考
在连接实例时,首先需要完成身份验证,确保只有授权用户能够访问和管理服务器资源,以增强安全性。创建实例时,您可以选择一个系统预设的用户作为初始登陆用户。实例创建完成后,即可用该用户身份登陆。本文将详细介绍不同用户的特点与区别,以及如何管理这些用户和添加额外的远程连接用户。
3114 12
前后端分离的跨域问题解决:No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
本文介绍了解决前后端分离项目中跨域问题的方法,包括添加`CorsConfig`配置类和重写`WebMvcConfigurer`接口的`addCorsMappings`方法,允许前端请求访问后端资源,并提供了具体的代码示例。
前后端分离的跨域问题解决:No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
前端祖传三件套JavaScript的DOM之事件的各种具体事件类型的焦点
在前端开发中,JavaScript 中的 DOM 事件机制提供了丰富的功能和灵活的方式来处理各种事件。本文将介绍 JavaScript 中常见的焦点事件类型,包括 focus、blur、focusin 和 focusout。
309 0
kde
|
14天前
|
Docker镜像加速指南:手把手教你配置国内镜像源
配置国内镜像源可大幅提升 Docker 拉取速度,解决访问 Docker Hub 缓慢问题。本文详解 Linux、Docker Desktop 配置方法,并提供测速对比与常见问题解答,附最新可用镜像源列表,助力高效开发部署。
kde
9093 53
|
11天前
typora免费版,激活方法,Typora使用教程
Typora是一款简洁高效的Markdown编辑器,支持即时渲染。本教程涵盖安装方法、文件操作、视图控制、格式排版、字体样式及Markdown语法,助你快速上手使用Typora进行高效写作。
2372 4
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等