使用subArray中的条件进行搜索并使用nodeJS和NeDb获得结果
问题描述:
我很沮丧两天,因为我是nodeJS和JSon中的新手。 与我的英语不好,我有一个案例在子数据中搜索数据,并把结果放入浏览器。 这是我的代码:使用subArray中的条件进行搜索并使用nodeJS和NeDb获得结果
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"
}]
答
以下应该工作。除了在这里和那里的一些括号以及投影中的"_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, ' '));
});
你面临什么问题?有什么错误? – sidgate
我无法获得具有特定标准的数据子阵列 –
您是否找到解决方案?我很感兴趣。 – Gilsdav