0
我有如下定義文章模型:貓鼬如何加入搜索結果
var ArticleSchema = new Schema({
type: String
,title: String
,content: String
,hashtags: {
type: [String]
,index: true
}
,meta: {
tags: [String] //anything
,category: String
}
現在我需要按類別做搜索,通過標籤和關鍵字。
var words = queryString.split(' ')
if (searchType === constant.searchTypes.category) {
criteria['meta.category'] = {$in: words}
}
else if (searchType === constant.searchTypes.tag) {
//todo
}
else if (searchType === constant.searchTypes.keyword) {
//todo
}
var query = Article.find(criteria)
helper.populateCommonFieldsForQuery(query)
query.exec(function(err, articles) {
if (err)
return next(err)
return res.json(articles)
})
queryString只是'word1 word2 word3'格式。由於一篇文章只有一個類別,因此按類別搜索很容易。我可以在前提中簡單地使用$。
但文章有多個標籤,我想列出的所有文章,他們的任何標籤的匹配任何的查詢詞(即集相交不爲空)
我也需要通過關鍵字做搜索,我需要檢查標題或內容匹配。我可以在一個查詢中做到這一點嗎?
但是標記字段是一個數組。標題和內容都是長字符串。 – OMGPOP
標籤正在工作。但內容不會工作,因爲它不符號化 – OMGPOP
'$或'運營商只是執行邏輯'或'喜歡這個過程'$或[表達式1,表達式2,...]'如果表達式值TRUE;返回true。所以,返回適當的文件。另一個問題必須是關於「內容」的問題。如果你能不能解決問題編輯您的問題添加自己的MongoDB和你的代碼,如果有問題的不同,其使用一些樣本文檔。我會盡力幫助你。 – efkan