我對Meteor和它的Mongo DB非常陌生,我想知道如何找到'相關文檔'。流星/ Mongodb根據文檔標籤找到相關記錄
我有崗位的集合,有標籤,就像這樣:
[{ title : 'title', tags: [{name : 'tag1'}, {name : 'tag2'}]}]
現在我想查詢我的數據庫,查找具有這些標記集,在這裏我想訂一個路口的帖子交點下降的大小的結果。
這應該如何編碼到find()查詢中,其中查詢被賦予一個標籤數組來檢查輸入?
我對Meteor和它的Mongo DB非常陌生,我想知道如何找到'相關文檔'。流星/ Mongodb根據文檔標籤找到相關記錄
我有崗位的集合,有標籤,就像這樣:
[{ title : 'title', tags: [{name : 'tag1'}, {name : 'tag2'}]}]
現在我想查詢我的數據庫,查找具有這些標記集,在這裏我想訂一個路口的帖子交點下降的大小的結果。
這應該如何編碼到find()查詢中,其中查詢被賦予一個標籤數組來檢查輸入?
很容易利用這種結構:
[{
title: 'title',
tags: ['tag1', 'tag2'],
}]
然後你使用:
Documents.find({
tags: {$all: [ "alpha", "beta", "gamma" ]}
});
在這裏看到:http://docs.mongodb.org/manual/reference/operator/all/#op._S_all
現在,它可能會或可能不會與複雜的對象,你有工作, 我不確定。試試這個:如果你需要指定的結構
Documents.find({
tags: {$all: [{name: "alpha"}, {name: "beta"}]}
});
和上面的查詢不工作,留給你的$where
查詢。它非常靈活,但不推薦,因爲它比其他的慢得多。在這裏看到:
http://docs.mongodb.org/manual/reference/operator/where/#op._S_where
編輯:這一個應該做的工作:
Documents.find({
'tags.name': {$all: ["alpha", "beta"]}
});
您也可以找到SIMPL Ÿ爲:
Collection.find({"tags.name" : "tag1"})
這會得到有tags
陣列中的所有'tag1'
匹配文檔。
是否有與$ all相媲美的東西,那並不意味着ALL,而是INTERSECT?所以它匹配如果它與tags.name相交,即。一些標籤匹配。如果我們可以按照交叉點的大小對它進行排序,會更好 –
如何排除當前文檔?就像博客文章邊欄中的「相關帖子」。 – RZKY