如果搜索字符串在数组中,则Mongoose返回文档

时间:2017-06-05 17:19:51

标签: node.js mongodb express mongoose

以下是我的模型架构的快照......

mongoose.Promise = Promise;

let postSchema = Schema({
    title: { type: String, unique: true },
    uri: { type: String, unique: true },
    image_uri: { type: String },
    content: {
        mrkdwn: { type: String },
        html: { type: String }
    }, 
    excerpt: { type: String },
    tags: [{ type: String }], // This is an array of tags,
                              // I want to find all documents whose tags
                              // array contains a search string
    creator: { type: String, default: 'some name' },
    category: { type: String },
    type: { type: String, default: 'Standard' },
    timestamp: { type: Date, default: Date.now },
    latest_timestamp: { type: Date, default: Date.now }
});

module.exports = mongoose.model('Post', postSchema);

以下是查询的快照...

var queryParams = {
     category: 'someCategory',
     tags: ['someTag']
   }

Post.find(queryParams).exec((err, posts) => {
        // Do some stuff in here
    }

我想返回tags字段包含一些'search string'的所有结果,但目前它对我不起作用。我该如何获得此功能?

编辑 - 附加信息

某些记录的标记数组可能为['cool', 'lame']而另一个记录的数组可能为['cool'],但只有后者会返回以下queryParams个对象。

var queryParams = {
         tags: ['cool']
       }

解决方案 - 感谢@Veeram

以下查询将匹配其标签数组与搜索数组中的任何值匹配的任何文档。

var queryParams = { tags: { $in: ['cool'] } }

0 个答案:

没有答案