Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以在数据库中的类中筛选私有列表吗?_Javascript_Java_Mongodb_Datastore_Morphia - Fatal编程技术网

Javascript 我可以在数据库中的类中筛选私有列表吗?

Javascript 我可以在数据库中的类中筛选私有列表吗?,javascript,java,mongodb,datastore,morphia,Javascript,Java,Mongodb,Datastore,Morphia,我是一个mongo新手,我想知道这是否可能,而不是重复整个列表 我有以下课程: public class Person { private String name; private int age; private List<PersonHistory>; //getters and setters... } public Class PersonHistory { private long created; private long finished;

我是一个mongo新手,我想知道这是否可能,而不是重复整个列表

我有以下课程:

public class Person {
  private String name;
  private int age;
  private List<PersonHistory>;

  //getters and setters...

}

public Class PersonHistory {
  private long created;
  private long finished;
}
公共类人物{
私有字符串名称;
私人互联网;
私人名单;
//接球手和接球手。。。
}
公共课个人历史{
私人长期创造;
私人长时间完成;
}
基本上,Person类中的列表将跟踪该类何时被编辑,然后Person类被序列化并存储在mongo中。 然后,用户将要求提供具有给定日期(startDate、endDate)的列表


因此,一旦存储在mongo中,就可以通过mongo过滤列表,并给出日期,或者我是否必须获取列表,遍历列表,返回结果

如果我正确理解您试图执行的操作,您可以使用投影进行此查询:

MongoCursor<Document> iterator = collection.find(new Document("name", "joe"))
                                           .projection(Projections.elemMatch("history", new Document("created", 12345)))
                                           .iterator();
while (iterator.hasNext()) {
  Document found = iterator.next();
  System.out.println(found);
}
MongoCursor迭代器=collection.find(新文档(“name”、“joe”))
.projection(projects.elemMatch(“历史”,新文档(“创建”,12345)))
.iterator();
while(iterator.hasNext()){
找到的文档=迭代器.next();
System.out.println(已找到);
}
您可以修改投影,以指定要包含的字段或使用更复杂的条件(例如,在此和大于之间的“已创建”和大于任何值的“已完成”)


投影的API文档在这里:投影的概述在这里:

我们可以使用Mongo在java中提供的查询API来实现这一点。请使用汇总表参考以下内容<代码>AggregateIterable=db.getCollection(“餐厅”).aggregate(asList(新文档($match),新文档($borough”,“Queens”).append(“烹饪”,“巴西”)),新文档($group”,新文档(“$id”,“$address.zipcode”)。append(“count”,新文档($sum”,1“)