我有两个看起来像这样的模式:
var ToolBoxSchema = new Schema({
description: String,
tools: [{type: ObjectId, ref: 'Tool'}]
});
var Tool = new Schema({
name: String,
model: String,
});
假设我有一个新的ToolBox
,其中包含一组Tools
。我有一个Tools
数组,并希望使用mongoose中的create方法保存这些工具,然后为每个工具添加对ToolBox.tools数组的引用。
var toolBoxModel = mongoose.model('ToolBox', ToolBoxSchema);
var toolModel = mongoose.model('Tool', ToolSchema);
var toolbox = new toolBoxModel();
var tool = new toolModel();
var toolsArray = getTools();
假设getTools()返回一个包含X个元素的工具数组。 例如:[{名称:“螺丝刀”,型号:“craftman 3000”},{name:“drill”,型号:“black and decker”}]
当我调用模型的create方法时,如何获取已保存的所有文档的列表?
mongoose api docs中的示例显示每个保存的文档作为参数传递给回调函数,但如果每次数组中元素的数量不同,那么我不知道如何获取id的数组中保存的所有元素。
var array = [{ type: 'jelly bean' }, { type: 'snickers' }];
Candy.create(array, function (err, jellybean, snickers) {
if (err) // ...
});
有没有办法找回所有已保存文档的数组...可能是这样的:
var toolsArray = [{name: "screwdriver", model: "craftman 3000"}, {name: "drill", model: "black and decker"}];
tool.create(toolsArray, function (err, arrayOfToolDocs) {
if (err) {
throw err;
}
for (var i = 0; i < arrayOfToolDocs.length; i++) {
toolbox.tools.push(arrayOfToolDocs[i].id);
}
toolbox.save();
});
答案 0 :(得分:1)
您可以使用arguments对象获取传递给任何函数的参数。 例如:
function argNum(){
console.log(arguments.length);
}
argNum('test',1,23,43); // Logs 4