蒙戈德更改字段类型
本文关键字:字段 类型 | 更新日期: 2023-09-27 18:31:01
我的查询有问题。如何在mongoDB查询中执行类似此SQL查询的操作?
SELECT convert(datetime, field1)
FROM MyTable
基本上你不能这样做。虽然不能在查询中引用值,但不能动态转换它。如果您知道可能放入的内容,则可以使用特定值进行更新。没有这样的事情:
db.collection.update({},{$set:{b:ISODate('$b')}})
这是当前的增强请求。
唯一的方法是编写一个脚本,该脚本以更新的类型爬行集合保存文档。您还可以根据字段的类型运行查询,如果您的流量在两者之间制动,这可能会有所帮助。
对于此解决方案,请检查该问题:MongoDB:如何更改字段的类型?
那里的解决方案是这样的:
db.collection.find().forEach( function (x) {
x.b = new ISODate(x.b); // convert field to ISODate
db.collection.save(x);
});
你不能。如果您需要转换存储在MongoDB中的值,唯一的方法是在应用程序代码中执行此操作。如果这是您需要经常执行的转换和/或需要对转换后的值运行查询,则应考虑在文档中同时存储原始值和转换后的值。像这样的非规范化在MongoDB模式设计中非常常见。