3

我的收藏如下。

{
 "name" : "pqr" ,
 "loc" : 
   [ 
    {"area" : "c" , "country" : "d"},
    {"area" : "w" , "country" : "r"}
   ]
}

我想让哪个匹配只匹配数组 loc 的第一个元素

这意味着如果

  1. 将区域指定为 c 或国家 d,然后返回文档。
  2. 给定面积为 w 或国家为 r 然后不返回元素

只匹配 mongo 数组的第一个元素

这在 mongo 中可能吗?

如果有人知道请回复

谢谢

4

1 回答 1

3

因此,如果您只想返回第一个匹配的元素,您应该使用limit(n)如下查询:

1.将地区指定为c或国家d,然后返回文件。

db.items.find( { $or : [ {"loc.area": "c" } , 
                         {"loc.country ": "d" } ] } ).limit(1);

2.将区域作为 w 或将国家作为 r 然后不返回元素

db.items.find( { $or : [ {"loc.area":  { "$ne" : "w" } }, 
                         {"loc.country": { "$ne" : "r" } } ] } ).limit(1);

如果您只想在嵌套数组的第一个元素中搜索,您可以通过添加.0.->使用位置运算符来完成loc.0.area

更新:我首先误解了你的问题。现在我看到你在寻找loc.0.area

于 2011-04-13T09:48:40.070 回答