У меня есть массив, используя это, я хочу найти некоторые продукты. Массив, показанный ниже.Как получить результат прохождения массива в mongodb?
"productIds": [
{
"productId": ObjectId("574592dfc07f13943255c19d")
},
{
"productId": ObjectId("5745934cc07f13943255c19f")
},
{
"productId": ObjectId("57459397c07f13943255c1a1")
}
]
, используя этот productId
Я хочу найти конкретную продукцию. Я написал какой-то запрос, но он принимает только первый productId
, и он не принимает остальных.
router.post('/getItemOfWishList', function(req,res){
var wId = ObjectId(req.body.wID);
var findwishlists = function(db, callback) {
var cursor =db.collection('wishlists').find({_id: wId}).toArray(function(err, docs){
if(err){
callback(new Error("Some problem"));
}else{
callback(null,docs);
}
});
};
MongoClient.connect(config.database, function(err, db) {
assert.equal(null, err);
findwishlists(db, function(err,docs) {
db.close();
//console.log(docs[0].productIds);//It contains that array.
for(var key in docs){
console.log(docs[key].productIds[key].productId);
var pID = ObjectId(docs[key].productIds[key].productId);
var findproducts = function(db, callback) {
var cursor =db.collection('proInfo').find({_id: pID}).toArray(function(err, docs){
if(err){
callback(new Error("Some problem"));
}else{
callback(null,docs);
}
});
};
MongoClient.connect(config.database, function(err, db) {
assert.equal(null, err);
findproducts(db, function(err,docs) {
db.close();
if(err) return res.json({result:null})
else
return res.json({result: docs});
});
});
}
});
});
});
'return res.json ({result: docs});' строка останавливает цикл, я думаю. Почему вы делаете «возврат»? – Shrabanee
return для получения результата от node.js до углового контроллера. – Kevin