以下是我的模型架构的快照......
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']
}
以下查询将匹配其标签数组与搜索数组中的任何值匹配的任何文档。
var queryParams = { tags: { $in: ['cool'] } }