如果想要自己定义_id,直接在Schema中定义类型进行覆盖,默认是自动生成_id(且类型为ObjectId),示例:

const schema = mongoose.Schema({_id: Number
})

且在定义schemaoptions中有一个_id参数可以用于控制是否生成_id,但是由于mongoDB中的文档都需要一个_id,所以取消_id生成的情况一般为子文档,例如:

const childSchema = new Schema({ name: String }, { _id: false });
const parentSchema = new Schema({ children: [childSchema] });

如果在schema中定义_id类型为mongoose.Schema.ObjectId,则创建文档时就需要传入ObjectId类型的_id

{_id: mongoose.Types.ObjectId(id)
}

上面传递给ObjectId构造函数的id参数可以不传递,如果传递,id必须为一个12字节的字符串或者24位的16进制字符(12字节字符串会被转化为16进制字符)

另一个options中和_id很像的参数—id,它的作用是给文档设置一个虚拟属性id用于获取ObjectId类型_id的字符串格式

传递给findById函数的_id可以是字符串或者ObjectId类型

mongoose自建_id相关推荐

  1. mongoose mysql_mongoose入门

    mongoose入门 MongoDB是一个开源的NoSQL数据库,相比MySQL那样的关系型数据库,它更显得轻巧.灵活,非常适合在数据规模很大.事务性不强的场合下使用.同时它也是一个对象数据库,没有表 ...

  2. mongoose用模型更新不了,因为模型对象中默认带有_id会提示errmsg: “Performing an update on the path ‘_id‘ would modify the i

    mongoose用模型更新不了,因为模型对象中默认带有_id 会提示errmsg: "Performing an update on the path '_id' would modify ...

  3. Mongoose之 SchemaTypes 数据类型

    SchemaTypes 数据类型 SchemaTypes handle definition of path defaults, validation, getters, setters, field ...

  4. Mongoose介绍和入门​​

    本文转载自 ​​Porschev[钟慰]​​ 简介 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具 Github地址:​​https://github.com/ ...

  5. Mongoose在向集合中插入文档时的集合命名问题

    原文链接:http://www.cnblogs.com/wx1993/p/5243245.html Mongoose使用结构化的模式应用到MongoDB集合,为MongoDB Node.js原生驱动程 ...

  6. node中mongoose的使用

    mongoose mongoose官方文档 mongoose中文文档 1.安装 npm i mongoose -S 2.连接 const mongoose = require("mongoo ...

  7. koa+mongoose基础入门

    1.mongoose基本使用 1.安装mongodb npm install mongodb 2.引入mongodb数据表,连接mongodb,通过node来对mongodb进行异步的增删改查 con ...

  8. 【建站系列教程】2.3、分享一些小说的api接口

    [建站系列教程]2.3.分享一些小说的api接口 一.追书神器api 二.资源二api 三.宜搜api 四.结语 写在前面:大家好,我是热爱编程的小泽. [建站系列教程]是我的亲身建站经历写给广大建站 ...

  9. mongoose 实用 API 总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.介绍 1. 概述 mongoose 模块用于简化 node 与数据库 mongodb 之间的操作,目的是通过简便的 API ...

最新文章

  1. IOS UIScrollView (转)
  2. 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
  3. 将Halcon导出的多个dxf文件合并成一个分图层的dxf文件
  4. 架构之旅~底层提供一个统一的GetModel()的重要性
  5. 31. Minimize compilation dependencies between files
  6. java毕业设计汽车零件厂绩效管理mybatis+源码+调试部署+系统+数据库+lw
  7. html5富文本编辑器菜鸟手册,富文本编辑器froalaEditor(全面)附教程
  8. Android的Holo Theme
  9. 解决Worm.Win32.AutoRun.soq 病毒
  10. 麦子学院C++学习笔记
  11. Win10应用商店提示0x80070422解决方法
  12. 【073】我的wifi卡片-分享wifi密码一扫就好
  13. 【NOIP 2002】字串变换
  14. 使用理想低通滤波器对图像进行处理显示
  15. 分享一篇我很喜欢的文章《不破不立的哲学与个人成长》
  16. 【热血传奇】 怪物添加(上)
  17. shopee店铺装修的意义-扬帆志远
  18. c语言实现海龟爬行程序
  19. linux 端口监听 Netstat 常用命令
  20. UE4 下雪特效(特效)

热门文章

  1. win10桌面壁纸锁屏目录
  2. 索贝尔算子Sobel operator
  3. 流媒体系统包括哪三部分?目前三大主流媒体格式以及协议是什么?
  4. Cordova7.X系列视频教程-姜博-专题视频课程
  5. 从零开始带你成为MySQL实战优化高手学习笔记(一)
  6. CSS清除浮动-after伪元素
  7. 基于Winform菜鸟驿站管理系统1——数据库设计、项目搭建、Common层介绍
  8. 这些文字翻译软件能让你出国旅游更省心,不再为语言障碍烦恼
  9. [共享软件]共享软件如何赚钱
  10. 如何用Stata完成(shui)一篇经济学论文(十五):平行性趋势检验与安慰剂检验