首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >填充数组的猫鼬静态方法

问填充数组的猫鼬静态方法
EN

Stack Overflow用户
提问于 2014-11-24 20:29:24
回答 1查看 1K关注 0票数 1

我有一个猫鼬模式,如:

代码语言:javascript
复制
var postSchema = new Schema({
    ...
    tags : [{ type: Schema.Types.ObjectId, ref: 'Tag' }]
});

我正在尝试实现一个静态方法,它返回具有特定标记的帖子。类似于:

代码语言:javascript
复制
postSchema.statics.searchByTag = function searchByTag (tag, cb) {
  return this.find().populate('tags')
             .where("tags contains the element tag")
             .exec(cb);
};

问题:

  1. 我可以在静态方法中使用填充吗?
  2. 检查“标签”是否包含“标签”的最佳方法是什么?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 19:47:52

这就是我的答案/解决方案: 1)是的,用静态方法填充工作;2)这就是我解决问题的方法,也许不是最有效的方法,但它有效:

代码语言:javascript
复制
postSchema.statics.searchByTag = function searchByTag (tagId, cb) {
    var Posts = [];
    this.find({})
    .populate('author tags')
    .exec(function(err,posts){
    if(err){
        cb(err);
    }else{
        posts.forEach(function(post){
        post.tags.forEach(function(tag){
            if(new String(tag._id).valueOf() == new String(tagId).valueOf()){
            Posts.push(post);
            }
        });         
        });
        cb(null,Posts);
    }
    });
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27113599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档