如何使用mongoose / mongodb将查询结果设置为数组

时间:2015-11-20 20:02:43

标签: mongodb mongoose

我需要将查询结果设置为要保存的对象的数组。

首先我得到物品:

Item.find({...}, function...

看起来像那样:

data =

[ { foo: [],
bar: true,
_id: 564f62b1659abdc22b9dd1da },
{ foo: [],
bar: true,
_id: 564f76b628bd4b62335bad7c } ]

现在我创建一个对象,我希望将查询结果的_ids保存为“Item”引用数组:

var itemholder = new Itemholder(req.body);
itemholder.items = ????

Itemholder有一个名为“items”的“Item”引用数组,它应如下所示:

"items" : [ { "item" : ObjectId("564f62b1659abdc22b9dd1da"),
    "_id" : ObjectId("564f54c4e9bbbbee230647a4") },
    { "item" : ObjectId("564f76b628bd4b62335bad7c"),
    "_id" : ObjectId("564f67043f88a5b12d6c32ff") } ]

谢谢。

1 个答案:

答案 0 :(得分:0)

找到了一种方法(可能不是最好的):

Item.find(..., function(err, data){
    if(err){
        ...
    }else{
        data = data.map(function(data) { return {'item': data._id}; });
        sprint.items = data;
        sprint.save(function(err2, data2){
        ...