水线的高级要求(风帆,节点)

时间:2014-08-27 11:06:53

标签: node.js sails.js waterline

我有视频模型(水线)

视频

  -title
  -description
  -matches (array)
    [0]
      - MatchTitle
      - MatchDescription
    [1]
       ...
    [N]

如何查找包含与标题匹配的视频" ABC"例如?

我写的不是最好的解决方案,因为它会从数据库中检索所有数据

Video.find({is_html5:true}).done(function(err, videos) { // get all videos
  async.forEach(videos, function(video, callback) {
    var isFound = false;
    async.forEach(video.matches, function(videoMatch, matchCallback) { // get video matches
      if(videoMatch.gs_id === match.gs_id && !isFound) {
        match.relatedVideos.push(video.id);
        isFound = true;
      }
      matchCallback();
    }, function(err3) {
      callback();
    });
  }, function(err2) {
    cb();
  });
}, function(err1) {
  cb();
});

1 个答案:

答案 0 :(得分:0)

如何使用mongo的魔法并按数组项的属性查找视频?

Video.find({'matches.matchTitle' : 'ABC'}).exec(...);

// or using regex (if you want to match a substring)
Video.find({'matches.matchTitle' : { $regex: /ABC.*/ }}).exec(...);

这有多大帮助。