小编sic*_*ics的帖子

Spring Data MongoDB两个日期之间的日期

我正在使用Spring Data for MongoDB并获得以下类

class A {
    List<B> b;
}

class B {
    Date startDate;
    Date endDate;
}
Run Code Online (Sandbox Code Playgroud)

当我保存一个A的对象时,它就像持久化一样

{
    "_id" : "DQDVDE000VFP8E39",
    "b" : [
          {
              "startDate" : ISODate("2009-10-05T22:00:00Z"),
              "endDate" : ISODate("2009-10-29T23:00:00Z")
          },
          {
              "startDate" : ISODate("2009-11-01T23:00:00Z"),
              "endDate" : ISODate("2009-12-30T23:00:00Z")
          }
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在我想在db中查询匹配b中条目的文档,其中给定日期在startDate和endDate之间.

Query query = new Query(Criteria.where("b").elemMatch(
    Criteria.where("startDate").gte(date)
    .and("endDate").lte(date)
);
Run Code Online (Sandbox Code Playgroud)

这导致以下mongo查询:

{
   "b": {
       "$elemMatch": { 
           "startDate" : { "$gte" : { "$date" : "2009-11-03T23:00:00.000Z"}}, 
           "endDate" : { "$lte" : { "$date" : "2009-11-03T23:00:00.000Z"}}
       }
   }
} …
Run Code Online (Sandbox Code Playgroud)

spring mongodb spring-data-mongodb

8
推荐指数
1
解决办法
2万
查看次数

CouchDB通过三个索引键查询和过滤

我目前正在尝试按三个值的键排序和排序.但是让我们从文档结构开始:

{
    _id: "DOCIDGOESHERE01",
    type: "MESSAGE",
    date: "2011-08-24 06:49:02",
    author: "USERIDGOESHERE01",
    receiver: ["USERIDGOESHERE02", "USERIDGOESHERE03"],
    message: "ok let's do this"
}
Run Code Online (Sandbox Code Playgroud)

主要目标是查询couchDB以查找选定用户向特定用户发送的消息,并按日期对其进行排序.有些消息没有任何接收器,表明它们是公开的,任何人都可以阅读.

我目前使用的地图功能如下所示:

function map(doc) {
    if(doc.receiver.lenth==0)
        emit([doc.date, null, doc.author], doc._id);
    else for(var idx in doc.receiver)
        emit([doc.date, doc.receiver[idx], doc.author], doc._id);
}
Run Code Online (Sandbox Code Playgroud)

在查询couchDB HTTP接口时,我尝试了类似的请求

HTTP GET xxx/messages?key=[{}, "USERIDGOESHERE02", {}]
Run Code Online (Sandbox Code Playgroud)

要么

HTTP POST xxx/messages
{
    keys: [
        [{}, "USERIDGOESHERE02", "USERIDGOESHERE01"],
        [{}, "USERIDGOESHERE02", "USERIDGOESHERE03"],
        [{}, "USERIDGOESHERE02", "USERIDGOESHERE04"],
    ]
}
Run Code Online (Sandbox Code Playgroud)

但是所有这些都没有产生我想要制作的文件清单.你对这个任务有什么建议吗?或者用couchDB构建这样的过滤结果是不可能的?非常感谢你提前!

json couchdb mapreduce

3
推荐指数
2
解决办法
2535
查看次数

如何在java中将数组传递给二维数组

我想将一个n元素数组转移到java中的二维数组.

例如:

[1,2,3,4]

这个数组应该转移到一个二维数组

[[1,2],[1,3],[1,4],[2,3],[2,4] [3,4]]

  • 二维数组的第一行是1,2.
  • 双阵列的第二行是1,3.
  • 双阵列的第三行是1,4.
  • 双阵列的第四行是2,3.
  • 双阵列的第五行是2,4.
  • 最后一行是3,4

java list

1
推荐指数
1
解决办法
148
查看次数

标签 统计

couchdb ×1

java ×1

json ×1

list ×1

mapreduce ×1

mongodb ×1

spring ×1

spring-data-mongodb ×1