【问题标题】:How mongoDB aggregation query can be convert in to Java DBObject?如何将 mongoDB 聚合查询转换为 Java DBObject?
【发布时间】:2014-12-10 10:11:49
【问题描述】:

我在java中查找“and”、“or”逻辑运算(聚合框架)时遇到问题

此代码适用于单个变量 DBObject match=new BasicDBObject("$match",new BasicDBObject("item","a")); 但我想匹配多个变量

请有人解释我如何在这个查询中写“和”/“或”。

【问题讨论】:

  • 请发布您的代码,以便我们提供帮助。
  • db.temp2.​​aggregate([ { $match:{$or:[ { ITEMTYPE: 'like' },{ ITEMTYPE: 'post' }]}},{$group : {_id : { cust_id2:"$POSTDBID"}, numberofPostID : {$sum : 1}}},{ $sort: { numberofPostID: -1 } },{ $limit : 5 }]);
  • @philip 请将此查询转换为 java..
  • @user35662 可能会对您有所帮助stackoverflow.com/questions/24629010/…
  • @yogesh 没有关于“$match”的多个字段的解释

标签: mongodb mongodb-query mongodb-java


【解决方案1】:

当您查询同一字段的多个值时,使用 $in 而不是 $or 会更简单。这是您使用 $in 翻译成 Java 的示例:

new BasicDBObject("ITEMTYPE", new BasicDBObject("$in", Arrays.asList("like", "post")))

或使用 QueryBuilder:

QueryBuilder.start("ITEMTYPE").in(Arrays.asList("like", "post")).get()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-31
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多