mongodbobjectid的简单介绍

本篇文章给大家谈谈mongodbobjectid,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Mysql迁移数据到Mongodb,原自增类型的id要转换成objectId,有没有什么好的迁移方法或建议

这样空雀:

ObjectId id = new ObjectId(new Date(), old_id0xffff, old_id0xffff0000);

使用的这斗模早个构造函数 ObjectId( Date time , int machine , int inc );

把你原来的64位的id值得高32位转换为ObjectId中的machine值,低32位转换为ObjectId中的inc。码镇

这样就可以满足你的需求了。

[img]

mongoose objectid是什么类型

申明:ObjectId不是指主键,他只是mongodb中的一种主键类型。

因此,你定义的Schema虽然有很多ObjectId类型芹源胡,但是却没有指定谁是真正的主键。程序无法得知你定义的真正主键是谁,还是会为你默认分配_id作为你的主键,他的类型是ObjectId。程序只会给真正的嫌拦主键赋值,裂闭其他的2个当然不会给值咯。如果你想给他值,就要写set方法,让Schema构造完后写入数据库时自动生成值。

请问mongoose如何判断字符串是否是标准的ObjectId

在nodejs操作mongodb的时候,激迅碧在传递ObjectId的时候通常都是用字符串形式传递,昌陪如果需要转成ObjectId类明举型,可以使用如下方法:

var mongoose = require('mongoose');

var id = mongoose.Types.ObjectId('576cd26698785e4913b5d0e1');

查看下转换后的类型:

console.log(typeof '576cd26698785e4913b5d0e1');

// output: string

console.log(typeof mongoose.Types.ObjectId('576cd26698785e4913b5d0e1'));

// output: object

mongodb 为什么要用objectid 不用string

可以发现这里多搭扒冲出一个Objectid类型的_id,当然了,这个_id是系统默认生成的,你也可以为其指定一个值,不过在同一collections中该值必须是唯一的

把 ObjectId("4df2dcec2cdcd20936a8b817")这串值拿出来并对照官网的解析来深入分析。

"4df2dcec2cdcd20936a8b817" 以这段字符串为例来进行解析,这是一个24位此凯的字符串,看起来很长,很难理解,实际上它是由ObjectId(string)所创建的一组十六进制的字 符,每个字节两位的十六进制数字,总共使用了12字节的存储空知歼间,可能有些朋友会感到很奇怪,居然是用了12个字节,而mysql的INT类型也只有4个 字节,不过按照现在的存储设备,多出来的这点字节也应该不会成为什么瓶颈,实际上,mongodb在设计上无处不在的体现着用空间换时间的思想,接下看吧

MongoDB 查询技巧(1) - 字段相等

在工作中有时遇到这么一种场景 找出那些字段A和字段B相等的数据

刚开始只能想到自己联表查自己,后面研究了一下,发现了更简单的方法,分享出来

假设我们有以下测试数据

是一张 暗恋表 ,有人喜欢别人,有人自恋

我们现在想要 找出那些自恋的人

lookup语法

根据语法和常规思路,我们写下了如下查询

( $unwind 是用来拍平数据结构的,因为联表之后,嵌套字段是一个列表)

查询之后发现 结果为空

嗯?我们把 match 删了看一下结果是啥

可以看到,联表的确是生效了,但是我们要找的是 自恋 , 而不是 有人爱 ,

联表之后还差一步,就是找到 name 等于 love_yourself.name 的记录

但是,等等,貌似又回到了最初的问题: 找到字段相等的数据

所以,联表也遇到同样的问题,也就是联表并没有解决这个问题,所以此路不通

然后在官方文档的 query 里面找啊找,发现了 expr 的操作,例子很有意思

然后我想,我把 gt 换成 eq 行不行呢

把查肆芹询语句换一下

结果如下

bingo! 可以了

这个问题暂时解决了,但是平时工作中,经常遇到 ObjectId 和 String 互相匹配的问题

那么在这种场景下,语句如何写呢?

我们准备好测试数据

值一样的,标记为了同一个颜色

我们先来试一下,思路不变,能不能查出来(语句有变化,字段换成了 _id )

很遗憾,不能

此时还是在 expr 的文档里看到了这么一个例子

很明显, $expr 的 参数列表,参数类型可以此族是 转换函数,不一定就森雹弊需要是老老实实的字段, 如图中就是用了 $cond 作为条件函数来转换字段,

那么我把 ObjectId 转为 String 类型的是不是就可以了呢

来试一下以下的查询语句

结果如下

OK,这个场景也解决了

关于mongodbobjectid和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

相关阅读

  • mssqlserver(mssqlserver怎么安装)

    mssqlserver(mssqlserver怎么安装)

    简介:MSSQL Server是由微软公司开发的一种关系型数据库管理系统,是在Windows操作系统上运行的数据库服务器。它旨在提供可靠性、高性能和安全性,被广泛应用于企业级应用程序和网站开发中。多级标题:一、MSSQL Server的特点...

    2024.04.22 22:38:00作者:intanet.cnTags:mssqlserver
  • js转json(js转json在线)

    js转json(js转json在线)

    **简介**在IT技术领域中,JavaScript(简称JS)是一种常用的脚本语言,用于网页开发和编程。JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,常用于存储和传输数据。本文将讨论如何将Ja...

    2024.04.22 22:23:30作者:intanet.cnTags:js转json
  • 数据库有那些(数据库有哪些索引)

    数据库有那些(数据库有哪些索引)

    一、简介数据库是计算机中用于存储和管理数据的系统,是信息系统中最重要的组成部分之一。数据库技术在信息化时代发挥着重要作用,广泛应用于各行各业。数据库的种类有很多,每种都有其特点和适用场景。下面将介绍一些常见的数据库类型。二、关系数据库1....

    2024.04.22 22:14:00作者:intanet.cnTags:数据库有那些
  • 关于sparksqlsplit的信息

    关于sparksqlsplit的信息

    简介:作为一种基于内存的分布式数据处理框架,Spark SQL使得数据分析更加高效和灵活。而在Spark SQL中,split函数是非常常用的函数,用于将字符串通过指定的分隔符进行拆分。本文将详细介绍sparksqlsplit函数的用法和示...

    2024.04.22 22:13:30作者:intanet.cnTags:sparksqlsplit
  • 数据的处理方法(实验数据的处理方法)

    数据的处理方法(实验数据的处理方法)

    在当今数字化时代,数据处理变得越发重要。从企业管理到科研领域,人们需要处理大量的数据以获取有价值的信息。本文将介绍一些常见的数据处理方法,帮助读者更好地理解和应用数据处理技术。# 传统数据处理方法传统数据处理方法主要包括数据录入、数据清洗、...

    2024.04.22 22:09:30作者:intanet.cnTags:数据的处理方法
  • mongodb和hbase(mongodb和hbase性能)

    mongodb和hbase(mongodb和hbase性能)

    MongoDB和HBase是两种流行的NoSQL数据库系统,它们在处理大规模数据和高并发访问方面都有很好的表现。本文将对MongoDB和HBase进行比较和分析,以帮助读者了解它们各自的优缺点和适用场景。# 一、MongoDB介绍Mongo...

    2024.04.22 22:00:00作者:intanet.cnTags:mongodb和hbase
  • mysql转sqlserver(MySQL转sqlserver数据库)

    mysql转sqlserver(MySQL转sqlserver数据库)

    **简介**将MySQL数据库转移到SQL Server数据库是常见的需求,因为有时候企业需要更稳定、更强大的数据库管理系统来满足数据需求。在本文中,我们将详细讨论如何将MySQL数据库成功转移到SQL Server数据库。**准备工作**...

    2024.04.22 21:45:30作者:intanet.cnTags:mysql转sqlserver
  • 数据库的建立(数据库的建立与维护实验心得)

    数据库的建立(数据库的建立与维护实验心得)

    标题:数据库的建立简介:数据库是指在计算机系统中,用于存储和管理数据的系统。在IT技术领域,数据库起着至关重要的作用,它可以帮助我们更好地组织和管理数据,提高数据的访问效率和安全性。下面将详细介绍数据库的建立过程和相关知识。一、数据库类型1...

    2024.04.22 21:30:00作者:intanet.cnTags:数据库的建立