我的查询有问题。如何在mongoDB query中执行类似这样的SQL查询?
SELECT convert(datetime, field1)
FROM MyTable发布于 2013-09-12 22:34:50
基本上你不能这么做。虽然您不能在查询中引用回值,但您不能动态地转换它。如果您知道要放入的内容,则可以使用某个值进行更新。根本没有这回事:
db.collection.update({},{$set:{b:ISODate('$b')}})这是当前的增强请求。
唯一的方法是编写一个脚本,该脚本使用更新的类型在集合保存文档中爬行。您还可以根据字段的类型运行查询,如果您的流在两者之间刹车,这可能会有所帮助。
对于此解决方案,请检查该问题:MongoDB: How to change the type of a field?
这里的解决方案类似于:
db.collection.find().forEach( function (x) {
x.b = new ISODate(x.b); // convert field to ISODate
db.collection.save(x);
});发布于 2013-09-12 22:34:52
如果您需要转换存储在MongoDB中的值,唯一的方法就是在您的应用程序代码中完成。如果这是您需要经常执行的转换,并且/或者如果您需要对转换后的值运行查询,则应考虑将原始值和转换后的值都存储在文档中。这样的反规范化在MongoDB模式设计中非常常见。
https://stackoverflow.com/questions/18766167
复制相似问题