mongodb数组中的匹配元素

时间:2011-04-13 09:32:07

标签: mongodb mongo-scala-driver

我收集如下。

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

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

这意味着

  1. 将区域作为c或国家d,然后返回文档。
  2. 将区域视为w或国家,因为r然后不返回元素
  3. 仅匹配mongo数组的第一个元素

    mongo有可能吗?

    如果有人知道plz回复

    由于

1 个答案:

答案 0 :(得分: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