首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb更改字段类型

Mongodb更改字段类型
EN

Stack Overflow用户
提问于 2013-09-12 21:49:54
回答 2查看 1.2K关注 0票数 2

我的查询有问题。如何在mongoDB query中执行类似这样的SQL查询?

代码语言:javascript
复制
SELECT convert(datetime, field1)
FROM MyTable
EN

回答 2

Stack Overflow用户

发布于 2013-09-12 22:34:50

基本上你不能这么做。虽然您不能在查询中引用回值,但您不能动态地转换它。如果您知道要放入的内容,则可以使用某个值进行更新。根本没有这回事:

代码语言:javascript
复制
db.collection.update({},{$set:{b:ISODate('$b')}})

这是当前的增强请求。

唯一的方法是编写一个脚本,该脚本使用更新的类型在集合保存文档中爬行。您还可以根据字段的类型运行查询,如果您的流在两者之间刹车,这可能会有所帮助。

对于此解决方案,请检查该问题:MongoDB: How to change the type of a field?

这里的解决方案类似于:

代码语言:javascript
复制
db.collection.find().forEach( function (x) {   
  x.b = new ISODate(x.b); // convert field to ISODate
  db.collection.save(x);
});
票数 2
EN

Stack Overflow用户

发布于 2013-09-12 22:34:52

如果您需要转换存储在MongoDB中的值,唯一的方法就是在您的应用程序代码中完成。如果这是您需要经常执行的转换,并且/或者如果您需要对转换后的值运行查询,则应考虑将原始值和转换后的值都存储在文档中。这样的反规范化在MongoDB模式设计中非常常见。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18766167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档