数组中的MongoDB Access元素

时间:2015-01-16 12:27:21

标签: mongodb

我有以下文件:

{
"_id" : ObjectId("54b6f260aa64b81864e6865e"),
"beschrijving" : "De Cooler Master N300 is een mid tower welke gemaakt is voor goede koeling. In de praktijk betekent dit dat het voorpaneel compleet bedekt is met mesh en er ruimte is voor 240 radiatoren; deze kan in de top of aan de rechterzijde geplaatst worden. Ook zijn er uiteraard meerdere fans toegevoegd om een hoge airflow te creëren, de keuze is hierbij gevallen op de SickleFlow om zo ook stilte te garanderen bij langdurig gebruik. Daarnaast is er ruimte voor een 120 radiator welke achterin de behuizing geplaatst kan worden. De N300 biedt ruimte voor 8 HDD's en high end grafische kaarten tot 320mm.Kenmerken:• Volledig mesh front paneel.• Support voor een 240mm radiator of twee 120mm fans aan de rechterkant/ in de top.• Support voor een 120mm radiator achterin.• Ruimte voor VGA kaarten tot 320mm, inclusief de NVIDIA GTX 690  AMD HD 7990.• Supports tot 8 HDDs.• Stoffilter onder de voeding.• Gebundeld met twee SickleFlow fans en ruimte tot acht fans.",
"price" : "€ 41,00",
"titles" : "CoolerMaster N300, ATX, Zwart",
"specs" : [ 
    {
        "name" : "Fan posities",
        "value" : "11 "
    }, 
    {
        "name" : "Front Audio",
        "value" : "Ja"
    }, 
    {
        "name" : "Front USB 2.0",
        "value" : "Ja"
    }, 
    {
        "name" : "Front USB 3.0",
        "value" : "Ja"
    }, 
    {
        "name" : "Front Firewire",
        "value" : "Nee"
    }, 
    {
        "name" : "Front eSATA",
        "value" : "Nee"
    }, 
    {
        "name" : "HTPC Behuizing",
        "value" : "Nee"
    }, 
    {
        "name" : "Formfactor",
        "value" : "ATX "
    }, 
    {
        "name" : "Voeding Form Factor",
        "value" : "ATX "
    }, 
    {
        "name" : "Voeding bijgeleverd",
        "value" : "Nee"
    }, 
    {
        "name" : "Aantal 5,25\" bays (extern)",
        "value" : "2 "
    }, 
    {
        "name" : "Aantal 3,5\" bays (extern)",
        "value" : "1 "
    }, 
    {
        "name" : "Aantal 3,5\" bays  (HDD/intern)",
        "value" : "7 "
    }, 
    {
        "name" : "Aantal 2,5\" bays (SSD/Intern)",
        "value" : "1 "
    }, 
    {
        "name" : "Bijgeleverde Fans",
        "value" : "2 "
    }, 
    {
        "name" : "artikelnummer",
        "value" : "NSE-300-KKN1"
    }
]
}

我如何访问'规格'并搜索哪个元素' artikelnummer'是,然后访问该一个以匹配我的其他文件的价值'场?

我正在使用robomongo来显示我的查询

1 个答案:

答案 0 :(得分:1)

试试这个:

var value = db.test2.findOne({'specs.name' : 'artikelnummer'}, {'specs.$' : 1}).specs[0].value