我声明了一个数组,但是当我在其中推入元素时,它仍然为空。这是我的代码:
var catsObjectId = new Array();
var data = new Array();
Recipe.find((err,doc3)=> {
data = doc3;
for (var i = 0; i < data.length; i++) {
catsObjectId.push([]);
data[i]['categories'].forEach((item, index) => {
Recipecat.findOne({_id: item}, (err,result)=> {
item = result.name;
catsObjectId.push(item);
});
})
}
console.log(catsObjectId);
});
这是食谱模式:
var recipeSchema = Schema({
categories: [{
type: Schema.Types.ObjectId,
ref: 'RecipeCat',
}]
});
这是Recipecat模式:
var recipecatSchema = new Schema({
name: {
type: String,
required: true
}
});
我想用它们的名称替换recipeCats的objectIds。
当我登录“ catsObjectId”时,它显示一个空数组。
似乎是什么问题?
提前致谢!
最佳答案
每次通过for循环时,您推入一个空数组。尝试删除此行。
catsObjectId.push([]);