MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Lưu các mục trong Mongoose để lặp lại với các phương pháp lược đồ

Khi bạn phải thực hiện cùng một tác vụ không đồng bộ cho các mục trong một mảng, đừng sử dụng vòng lặp for thông thường. Xem async.each , nó phù hợp hơn với kịch bản của bạn, chẳng hạn như (chỉ là else một phần của mã của bạn):

var body = JSON.parse(response.body);

async.each(body.data, function (photoData, callback) {

  // ------------------------------------------------
  // If there is no caption, skip it
  //

  if (!photoData.caption){
    text = '';
  }
  else{
    text = photoData.caption;
  }

  // ------------------------------------------------
  // Create new photo object
  //

  var photo = new Photo({
    link: photoData.link,
    username: photoData.user.username,
    profilePicture: photoData.user.profile_picture,
    imageThumbnail: photoData.images.thumbnail.url,
    imageFullsize: photoData.images.standard_resolution.url,
    caption: text,
    userId: photoData.user.id,
    date: photoData.created_time,
    _id: photoData.id
  });

  photo.checkBlacklist(function(err, blacklist){

    if (!blacklist){
      photo.save(function(err, item){
        if (err){
          console.log(err);
        }

        console.log('Saved', item);
        callback();
      });
    }

  });

}, function (error) {
  if (error) res.json(500, {error: error});

  console.log('Photos saved');
  return res.json(201, {msg: 'Photos updated'} );
});

Đừng quên cài đặt

npm install async

và yêu cầu async :

var async = require('async');


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Enums trong MongoDB

  2. Truy vấn MongoDB / Mongoose vào một ngày cụ thể?

  3. MongoDB có thể lưu trữ và thao tác các chuỗi UTF-8 với các điểm mã bên ngoài mặt phẳng đa ngôn ngữ cơ bản không?

  4. Cách hiển thị dữ liệu từ MongoDB đến giao diện người dùng thông qua Node.js mà không cần sử dụng khuôn khổ

  5. Làm cách nào để sao chép một bộ sưu tập từ MongoDB bằng pymongo và dán vào một bộ sưu tập trống khác?