mongodb数组中的匹配元素

mongodb数组中的匹配元素,mongodb,mongo-scala-driver,Mongodb,Mongo Scala Driver,我收集的资料如下 { "name" : "pqr" , "loc" : [ {"area" : "c" , "country" : "d"}, {"area" : "w" , "country" : "r"} ] } 我想让哪个匹配只匹配数组loc的第一个元素 这意味着如果 将区域指定为c或国家d,然后返回文档 将面积指定为w或国家/地区指定为r,则不返回元素 仅匹配mongo数组的第一个元素 这在mongo可能吗 如果有人知道,请回复 谢谢如果您只想返回第

我收集的资料如下

{
 "name" : "pqr" ,
 "loc" : 
   [ 
    {"area" : "c" , "country" : "d"},
    {"area" : "w" , "country" : "r"}
   ]
}
我想让哪个匹配只匹配数组loc的第一个元素

这意味着如果

  • 将区域指定为c或国家d,然后返回文档
  • 将面积指定为w或国家/地区指定为r,则不返回元素
  • 仅匹配mongo数组的第一个元素

    这在mongo可能吗

    如果有人知道,请回复


    谢谢

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

    1.给出区域c或国家d,然后返回文件

    2.将面积指定为w或国家/地区指定为r,则不返回元素

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

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

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