[英]Mongo search with populate in aggregation pipeline with text index
我有一個關於搜索實施的查詢。 這里的搜索實現或 atlas-search 最適合在單個集合中搜索。 我認為通常我們面臨一個場景,我們也需要使用填充或參考集合進行搜索。 我怎樣才能更好地實施呢?
考慮一個非常簡單的場景,我有 2 個collections 。
1產品(產品名稱字段的文本索引)
2用戶(用戶名字段上的文本索引可能是名字、姓氏等)
用戶創建產品,因此在產品集合中, createdBy上有用戶的 MongoID 參考。 在前端,有一個產品列表,所以我需要在單文本搜索中提供如下搜索條件
使用 MongoAtlas 處理這種情況的最佳方法是什么? 前任。 我想要“Donni Bachhan”創建的所有產品。 您剛剛的聚合管道或最佳實踐是什么
我已經向 MongoDB 社區提出了問題,但沒有得到適當的幫助,請查看以下鏈接以獲取社區參考
更好的是,我將其解釋為步驟
第 1 步:與用戶 collections 匹配:在那里您將獲得用戶詳細信息
第 2 步:查找產品 collections:這樣,您將獲得用戶創建的所有產品。
第 3 步:匹配搜索,如果需要任何搜索或過濾器將其與產品名稱匹配
示例:(希望這可以幫助你)
async function search(userid, query = null)
{
return await userModel
.aggregate()
.match({
_id: userid
})
.lookup({
from: "products",
localField: "_id",
foreignField: "userid",
as: "products"
})
.match({ $text: { $search: "cake" } })
.exec();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.