Поиск по критериям в subArray и получение результата с помощью nodeJS и NeDb

Я разочарован в течение двух дней, потому что я новичок в nodeJS и JSon. с моим плохим английским, у меня есть случай для поиска данных в подданных, и положить результат в браузере. это мой код:

var doc = [{
  "name": "yadi",
  "hobby": [{
    "home": "watch news",
    "bed_room": "read comics"
        }, {
    "home": "watch ufc",
    "bed_room": "eat candy"
        }]
},
  "name": "dony",
  "hobby": [{
    "home": "sleep",
    "bed_room": "eat dog food"
        }, {
    "home": "watch disney",
    "bed_room": "breathing"
        }]
}];
var db = new Nedb();db.insert(doc, function(err, newDoc) {
 console.log(JSON.stringify(newDoc, null, ' '));
//search data
db.find({
    "name": "yadi"
  }, { 
    "hobby": {
      $elemMatch: {
        "home": "watch news"
      }
    }
  }, function(err, docs) {

  console.log ("RESULT "+JSON.stringify(docs, null, ' '));

})  
})

Как я могу получить данные с этим результатом?

"hobby": [{
    "home": "watch news",
    "bed_room": "read comics"
        }]

1 ответ

Следующее должно работать. Вы в основном не много пропускаете, за исключением некоторых скобок здесь и там, и "_id": 0 в проекции.

var doc = [{
    "name": "yadi",
    "hobby": [{
        "home": "watch news",
        "bed_room": "read comics"
    }, {
        "home": "watch ufc",
        "bed_room": "eat candy"
    }]
}, {
    "name": "dony",
    "hobby": [{
        "home": "sleep",
        "bed_room": "eat dog food"
    }, {
        "home": "watch disney",
        "bed_room": "breathing"
    }]
}];

var db = new Nedb();
db.insert(doc, function(err, newDoc) {
    console.log(JSON.stringify(newDoc, null, ' '));
});

//search data
db.find({
    "name": "yadi"
}, {
    "_id": 0, // exclude _id
    "hobby": {
        $elemMatch: {
            "home": "watch news"
        }
    }
}, function(err, docs) {
    console.log ("RESULT "+JSON.stringify(docs, null, ' '));
});
Другие вопросы по тегам