[英]Why my mongoose objectId request return an empty array?
我过去一天没有找到答案。
这是我的猫鼬模式:
var schema = new mongoose.Schema({
value: {type: String},
title: {type: String},
date: { type: Date, default: Date.now },
packId: {type: mongoose.Schema.Types.ObjectId, ref:'Pack'}
});
这是我的要求:
(其中packId是一个ObjectId)
var getElements = function(packId, callback ){
Card.find(
{packId: packId},
function(err,els){
if(err){
console.log(err);
}else{
console.log(els);
}
}
);
};
**这是一个表格元素**
{
"title" : "test1",
"value" : "test1",
"packId" : ObjectId("54f9ebaae312727c45b2a80e"),
"_id" : ObjectId("54f9ebaae312727c45b2a820"),
"date" : ISODate("2015-03-06T18:02:18.544Z"),
"__v" : 0
}
我不明白为什么console.log(els)返回[],因为表中有元素。 我已经尝试过{type:Sting},但是什么也没有。
谢谢
好的,我找到了原因。
models.Card.saveCards(completeData.cards,packData.cid, function(){
models.Card.getCards(packData.cid,function(cards){
...
}
}
在保存所有卡之前,调用第二种方法getCards。
所以这就是我做的
var saveCards = function( cardsData, packId, callback ){
var nbCards = cardsData.length;
var start = 0;
var saveCard = function(cardData,packId) {
cardData.packId = packId;
var card = new Card(cardData);
card.save(function (err, card) {
if (err) {
console.log(err);
} else {
if(start<nbCards-1){
start++;
saveCard(cardsData[start],packId);
}else{
callback();
}
}
});
};
if( start === 0){
saveCard(cardsData[start],packId);
}
};
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.