当前位置: 首页 > 面试题库 >

mongodb类型更改为数组

宋伯寅
2023-03-14
问题内容

我在mongodb中有一个字符串字段。{"field": "some text"},我想将它们全部转换成数组。{"field": ["some text"]}

我知道我可以遍历所有文档,获取字段,然后更新,但是我想知道是否有更清洁的方法。

谢谢。


问题答案:

您可以在map / reduce的Reduce函数中进行此操作,以将所有处理保留在mongodb中。本质上,您将使用map /
reduce将结果放入新集合中,然后可以将其复制回旧集合(或删除旧集合并重命名新集合)。这具有将所有内容保留在mongo内部的优势。

更新 :另一个选择可能是让您使用db.eval。db.eval在服务器上执行,因此更新将在服务器上完成而没有任何流量/延迟。

我认为唯一的其他选择就是您所描述的-通过查询和更新每个选项在客户端上执行。



 类似资料:
  • 从"text/html"到"Application/json"的响应的标头类型。其他然后这个 am使用as头类型作为头(“内容类型”、“应用程序/json;字符集=UTF-8”) 但不是改变。

  • 我最近一直在优化我们的一些Postgres表,尽可能将更复杂的数据类型转换为更简单的数据类型。到目前为止,除了一种情况外,其他情况都相当简单,例如: ALTER TABLE产品ALTER列价格TYPE整数使用price::整数; 对于将文本转换为自定义枚举数据类型,这也非常简单。我刚刚编写了一个PLPGSQL函数,将文本转换为枚举,然后将列转换为:

  • 本节讨论了MySQL 5.1中DECIMAL数据类型(以及其同义类型)的特性,尤其是下述方面: ·数字的最大数。 ·存储格式。 ·存储要求。 ·对DECIMAL列上界 的非标准MySQL扩展。 在本节中,对于为较早MySQL版本编写的应用程序,在相应的地方指出了可能的不兼容性。 DECIMAL列的声明语法是DECIMAL(M,D)。在MySQL 5.1中,参量的取值范围如下: ·M是数字的最大数(

  • 问题内容: 在pgsql中,有一种方法可以建立一个包含多个值的表,然后选择其中一个值(例如other_id),找出其最大值,并使表中的每个新条目都从该值开始递增。 我想这太容易了,没有机会工作。 非常感谢您的见解! 问题答案: 快速浏览一下文档会告诉您 数据类型smallserial, serial 和bigserial 不是真实类型, 而只是创建唯一标识符列的符号方便 如果你想使现有的(整数)列

  • 主要内容:Object ID,Timestamps,Date下表中列举了 MongoDB 中常用的几种数据类型: 数据类型 描述 String 字符串类型,是最常用的数据类型,不过在 MongoDB 中,只有 UTF-8 编码的字符串才是合法的 Integer 整型,用于存储数值。根据您使用服务器的不同,整型可以分为 32 位或 64 位两种 Boolean 布尔型,用于存储布尔类型的值(true/false) Double 双精度浮点型,用于存储浮点型(

  • 问题内容: 我们需要将某些列的数据类型从int更改为bigint。不幸的是,其中一些表很大,大约有7-10百万行(但不宽)。 Alter表alter列将永远保留在这些表上。有没有更快的方法来实现这一目标? 问题答案: 巧合的是,大约3个小时前,我不得不做一些非常相似的事情。该表是3500万行,它相当宽,并且花了很多时间才能做到这一点: 这就是我最终得到的结果: 这次,这些陈述几乎是即时的。(在速度