如何在MongoDB中的数组对象中查找包含字符串的收集记录?

时间:2019-02-15 09:33:57

标签: node.js mongodb express sails.js

我有多个记录的MongoDB集合。每个记录都有一个数组,其中包含具有多个字段的对象。

我有如下收藏:

[{
    "name" : "Karthik Thurairaja"
    "universities" : [ 
        {
            "name" : "Anna University",
            "city" : "Chennai"
        },
        {
            "name" : "Punjab University",
            "city" : "Chandigarh"
        },
        {
            "name" : "University of Delhi",
            "city" : "New Delhi"
        }
    ],
},
{
    "name" : "Sathish Kumar"
    "universities" : [ 
        {
            "name" : "Anna University",
            "city" : "Chennai"
        },
        {
            "name" : "University of Hyderabad",
            "city" : "Hyderabad"
        },
        {
            "name" : "University of Delhi",
            "city" : "New Delhi"
        }
    ],
}]

我需要查找大学城市等于钦奈的所有记录。

我尝试过如下查询:

Collection.find({ universities.city : "Chennai" }).exec(...);

1 个答案:

答案 0 :(得分:3)

您可以使用$elemMatch查询来实现此目的。

Collection.find({ universities: { $elemMatch: { city: "Chennai" } } }).exec(...);