当前位置: 首页 > 知识库问答 >
问题:

在mongo中的$datetostring不工作

裴卓君
2023-03-14

我有一个问题让我忙了3天,但仍在与之斗争:我有一个mongodb查询,如下所示:

 db.test.aggregate([ 
  { 
     $project: { 
         yearMonthDay: { 
              $dateToString: { format: "%Y-%m-%d", date: "$date" } 
         } 
     } 
  } 
]) 

现在我正试图将其转换为java,但我真的不知道如何转换这一行:

yearMonthDay: { 
       $dateToString: { format: "%Y-%m-%d", date: "$date" } 
} 

我尝试了此代码,但根本不起作用:

 DBObject project = new BasicDBObject("_id", 0);
 DBObject format = new BasicDBObject("format","%Y-%m-%d");
 format.put("date", "$date");
 DBObject formattedDate = new BasicDBObject("$dateToString",format);
 project.put("yearMonthDay",formattedDate);

但我得到了以下错误:

通用域名格式。mongodb。CommandFailureException:

{“serverUsed”:“…”,“errmsg”:“异常:无效
运算符'$dateToString'”,“代码”:15999,“确定”:0.0}

有人知道吗?

共有1个答案

东方飞捷
2023-03-14

我在集合中插入了一个示例数据。

 {
   "_id" : 1,
   "item" : "abc",
   "price" : 10,
   "quantity" : 2,
   "date" : ISODate("2014-01-01T08:15:39.736Z")
 }

我能够使用以下java代码获得聚合查询所需的输出:

    DBCollection collection = db.getCollection("collection");
    DBObject project = new BasicDBObject();
    DBObject format = new BasicDBObject("format", "%Y-%m-%d");
    format.put("date", "$date");
    DBObject formattedDate = new BasicDBObject("$dateToString", format);
    project.put("yearMonthDay", formattedDate);
    DBObject aggregate = new BasicDBObject("$project", project);

    List<DBObject> pipeline = Arrays.asList(aggregate);
    AggregationOutput output = collection.aggregate(pipeline);
    for (DBObject result : output.results()) {
        System.out.println(result);
    }

有关Java驱动程序和聚合的更多详细信息,请查找:http://docs.mongodb.org/ecosystem/tutorial/use-aggregation-framework-with-java-driver/

 类似资料:
  • 我有运行以下命令: 使用以下脚本可以插入文档: 插入. js 这是输出: 并且我运行方法,显示了文档(这就是我知道插入工作正常的原因): find.js 这是输出: 问题是我在MongoDB shell中看不到文档,我试过这个: 通过以下方式连接到MongoDB shell: 在MongoDB外壳中,我可以看到我的数据库(mytestingdb): 并更改为我想要的数据库: 我可以看到我的收藏(e

  • 我试图在MongoDb上获取一个名为“fecha”的日志,其中包含一个日期字段。 在Java中执行代码后,我得到下一个查询: 但是我没有得到任何结果。以下是一些数据样本: 我的Java代码是下一个: 谢谢

  • 我有这样的配置 在包中,有一个组件需要中的存储库。 这适用于spring数据MongoDB 1.5.2版 如果我升级到任何高于1.6.0.release的版本(我尝试过1.6.2和1.7.0),这将不再有效。这就好像mongo存储库扫描不工作,我得到了错误: 有什么想法吗? 更新:如果我使用MongoRepository而不是PagingAndSortingRepository,它可以工作: 这不

  • 我们正在使用Talend工具将数据从Oracle迁移到Mongo DB,我们需要将对象Id添加到数组中的每个对象。我们尝试使用具有固定值的属性@type作为ObjectId,但没有成功。 我们需要以下输出: { “_id”:“12243”, “name”:“ABCD”, “城市”:“XYZ”, “请求”:[ { “\u id”:ObjectId(“5efdcf15ea9355c419fc9699”

  • 我在从命令提示符编译java时遇到了一个问题。起初,它说javac不是一个公认的内部或外部命令,通过阅读,我看到您需要更改路径,这正是我所做的······ 变量名:path 我关闭了Compand prompt并再次尝试,但还是出现了同样的问题。 然后我尝试了echo%path%和整个路径行被回显(整个行根据该变量值) 我还尝试了“for%I in(javac.exe)do@ECHO%~$path

  • 我有Intellij-IDEA 13.1.2。[已编辑,以前是13.0.2]我使用scala-plugin。我正在尝试使用工作表来评估代码。 但我得到的只有两个错误: 更新:现在它在Intellij13.1.5、Scala Plugin0.41.2和Scala-2.10和2.11下都能正常工作