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"
         }
      
目录
相关文章
|
开发工具 git druid
解决Git中fatal: refusing to merge unrelated histories
Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。 一、fatal: refusing to merge unrelated histories 今天在使用Git创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。
109467 6
|
JavaScript 前端开发
BootStrap在Vue中的安装使用详细教程
这篇文章提供了在Vue项目中安装和使用Bootstrap的详细教程,包括安装jQuery、引入Bootstrap、配置Webpack以及在项目中进行测试和查看效果的步骤。
BootStrap在Vue中的安装使用详细教程
|
10月前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
12006 17
|
9月前
|
弹性计算 Linux 网络安全
阿里云服务器怎么登陆,常见登陆方式教程参考
在连接实例时,首先需要完成身份验证,确保只有授权用户能够访问和管理服务器资源,以增强安全性。创建实例时,您可以选择一个系统预设的用户作为初始登陆用户。实例创建完成后,即可用该用户身份登陆。本文将详细介绍不同用户的特点与区别,以及如何管理这些用户和添加额外的远程连接用户。
4010 12
|
JavaScript 前端开发 测试技术
Vue 3 组合式 API 中的 nextTick 深入解析
Vue 3 组合式 API 中的 nextTick 深入解析
|
12月前
|
前端开发 Java
前后端分离的跨域问题解决: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 前端开发 UED
前端祖传三件套JavaScript的DOM之事件的各种具体事件类型的焦点
在前端开发中,JavaScript 中的 DOM 事件机制提供了丰富的功能和灵活的方式来处理各种事件。本文将介绍 JavaScript 中常见的焦点事件类型,包括 focus、blur、focusin 和 focusout。
343 0
|
9天前
|
人工智能 运维 安全
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
672 23