कोई MongoDB में इस के लिए समारोह में बनाया गया है। हालांकि, आप आसानी से इस जानकारी को एकत्रीकरण क्वेरी के साथ प्राप्त कर सकते हैं।
db.products.aggregate([
{
$project:{
words:{
$split:["$title"," "]
}
}
},
{
$unwind:"$words"
},
{
$group:{
_id:"$words",
count:{
$sum:1
}
}
},
{
$sort:{
count:-1
}
}
])
यह आउटपुट प्रत्येक शब्द के लिए घटना की संख्या:
{ "_id" : ObjectId("5874dbb1a1b342232b822827"), "title" : "title" }
{ "_id" : ObjectId("5874dbb8a1b342232b822828"), "title" : "new title" }
{ "_id" : ObjectId("5874dbbea1b342232b822829"), "title" : "hello world" }
{ "_id" : ObjectId("5874dbc6a1b342232b82282a"), "title" : "world title" }
{ "_id" : ObjectId("5874dbcaa1b342232b82282b"), "title" : "world meta" }
{ "_id" : ObjectId("5874dbcea1b342232b82282c"), "title" : "world meta title" }
{ "_id" : ObjectId("5874de7fa1b342232b82282e"), "title" : "something else" }
इस क्वेरी हमें शब्दों के बारे में जानकारी दे देंगे:
मान लेते हैं कि आपके संग्रह का अनुसरण दस्तावेज शामिल हैं
{ "_id" : "title", "count" : 4 }
{ "_id" : "world", "count" : 4 }
{ "_id" : "meta", "count" : 2 }
{ "_id" : "else", "count" : 1 }
{ "_id" : "something", "count" : 1 }
{ "_id" : "new", "count" : 1 }
{ "_id" : "hello", "count" : 1 }
आप MongoDB 3.4 का उपयोग कर रहे हैं, तो आप केस संवेदी/विशेषक insen प्राप्त कर सकते हैं नए collation विकल्प वाले शब्दों पर बैठे आंकड़े।
{ "_id" : ObjectId("5874e057a1b342232b82282f"), "title" : "title" }
{ "_id" : ObjectId("5874e05ea1b342232b822830"), "title" : "new Title" }
{ "_id" : ObjectId("5874e067a1b342232b822831"), "title" : "hello world" }
{ "_id" : ObjectId("5874e076a1b342232b822832"), "title" : "World Title" }
{ "_id" : ObjectId("5874e085a1b342232b822833"), "title" : "World méta" }
{ "_id" : ObjectId("5874e08ea1b342232b822834"), "title" : "World meta title" }
{ "_id" : ObjectId("5874e0aea1b342232b822835"), "title" : "something else" }
एकत्रीकरण क्वेरी के लिए मिलान विकल्प जोड़ने:
db.products.aggregate([
{
$project:{
words:{
$split:["$title"," "]
}
}
},
{
$unwind:"$words"
},
{
$group:{
_id:"$words",
count:{
$sum:1
}
}
},
{
$sort:{
count:-1
}
}
],
{
collation:{
locale:"en_US",
strength:1
}
})
इस वसीयत उत्पादन:
{ "_id" : "title", "count" : 4 }
{ "_id" : "world", "count" : 4 }
{ "_id" : "méta", "count" : 2 }
{ "_id" : "else", "count" : 1 }
{ "_id" : "something", "count" : 1 }
{ "_id" : "new", "count" : 1 }
{ "_id" : "hello", "count" : 1 }
उदाहरण के लिए
, मान लेते हैं कि हमारे संग्रह अब निम्नलिखित दस्तावेज शामिल करते हैं
strengh तुलना के स्तर प्रदर्शन करने के लिए है:
collation.strength: 1 // case insensitive + diacritic insensitive
collation.strength: 2 // case insensitive only
नहीं वास्तव में। मैं उन शब्दों की तलाश कर रहा हूं जो मोंगोडब ने शीर्षकों का सूचकांक बना दिया है, जो कि सभी उत्पादों के शीर्षक फ़ील्ड के बीच अलग-अलग शब्दों का एक सेट है, प्रत्येक शब्द किसी भी तरह उन उत्पादों की सूची को इंगित करता है जिनके शीर्षक में यह शीर्षक है। वैसे भी उत्तर के लिए धन्यवाद, यह कार्य भी उपयोगी हो सकता है। –