如何根据相关文档中的值查询文档?

时间:2019-04-06 12:32:30

标签: javascript node.js mongodb mongoose

我想知道是否可以根据相关文档中的值在数据库中找到所有文档?

(我正在使用猫鼬)


var tagSchema = mongoose.Schema({
    tagname: String,
});

var Product = new Schema({
    title : String,
    description : String,
    price : Number,
    tags:  [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Tag"
    }]
});

是否有任何方法可以根据标记名值选择我想要的产品?

我读了一些有关populate()的帖子,但这似乎不是解决方法。

一种方法是先填充所有内容,然后根据标签进行查找...但是有可能吗?

根据相关标签选择产品的最佳方法是什么?

非常感谢:)

1 个答案:

答案 0 :(得分:0)

尝试一下:

const selectByTagname = (tagname) => {
  Product.find({})
    .populate('tags')
    .exec()
    .then(function(docs) {
      let found = [];
      docs.map(function(doc) {
        doc.tags.map(tags => {
          if(tags.tagname == tagname ) found = doc;
        })
      })
      return found;
    })
    .then(foundDocs => console.log(foundDocs))
    .catch(err => err);
}