mongodb java驱动程序的查询过滤器

时间:2017-08-27 10:50:38

标签: mongodb mongo-java-driver

考虑以下documnet结构:

 {
 "_id" : <ObjectId>,
 "name" : <string>,
 "contact" : {
    "phone" : <string>
    "email" : <string>
    "location" : [ <longitude>, <latitude> ]
  },
  "stars" : int,
   "categories" : <array of strings>
  "grades" : <array of integers>,
   }

根据mongodb网站的以下查询指定

星形场大于或等于2且小于5,AND categories字段等于“Bakery”(或者如果categories是一个数组,则包含字符串“Bakery”作为元素):

collection.find(
    new Document("stars", new Document("$gte", 2)
         .append("$lt", 5))
         .append("categories", "Bakery")).forEach(printBlock);
  1. 有人可以解释一下查询的结构吗?
  2. 为什么要创建新文档(新文档(“$ gte”,2)?

1 个答案:

答案 0 :(得分:1)

查询如下所示:

{"stars"      : {$gte : 2, $lt : 5}
 "categories" : "Bakery"}

新文档(&#34; $ gte&#34;,2)已被调用以创建内部json:{$ gte:2,$ lt:5}