Mongoose:使用以前的数据更新集合

时间:2015-06-16 13:24:01

标签: node.js mongodb mongoose

我正在学习NodeJs和一个演示项目,我需要将MonGoDB与Mongoose一起使用。

我为相册创建了一个集合。

第一行是:albumName,第二行是:pictures。

我不知道如何在不删除旧条目的情况下将所有照片保存在行图片中。

如果我可以像这样工作,那将是非常棒的。所以我可以用一个查询获取相册的所有数据(和图片): - )

结果必须是这样的输出:

{
    album : album1,
    pictures{
        1.jpg,
        2.jpg,
        3.jpg
    }
}

实际上,相册的更新查询如下所示: 我保存了大图片和缩略图

uploader.on('end', function() {
  console.log("done uploading big pics");

  //SAVE DB
  AlbumPhoto.update({album:'album1'}, {$set: {pictures:file_name}}, function(err, data){
    if(err){
      console.log(err);
    }
  })
});

uploader2.on('end', function() {
  console.log("done uploading mini pics");

  //SAVE DB
  AlbumPhoto.update({album:'album1'}, {$set: {pictures:mini}}, function(err, data){
    if(err){
      console.log(err);
    }
  })
});

有人可以给我指示和示例吗?

1 个答案:

答案 0 :(得分:0)

首先,您发布的架构已关闭,应为

{
    album : "album1",
    pictures: [
        1.jpg,
        2.jpg,
        3.jpg
    ]
}

注意"图片"是一个数组而不是一个对象。

您可以使用

添加到数组中
//SAVE DB

AlbumPhoto.update({album:'album1'}, {$push: {pictures: "new.jpg"}}, function(err, data){
    if(err){
      console.log(err);
    }
  })