私は配列を持っていますが、これを使っていくつかの製品を検索します。以下に示す配列。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
node.jsの結果を角度コントローラに返すための戻り値。 – Kevin