sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB - Hur man hittar distinkta värden baserat på delsträng

För Mongo 3.x kan du använda $split och $arrayElemAt :

db.test.aggregate([
  { $project : { 
      domain: {$arrayElemAt: [ { $split: ["$url", "/"] }, 2 ] }
  }},
  { $group : { 
      _id: "$domain" , count : { "$sum" : 1 } 
  }},
  { $sort:{
      _id:1
  }}
]);

Och resultatet blir:

/* 1 */
{
    "_id" : "mydomain.prep.com",
    "count" : 2.0
}

/* 2 */
{
    "_id" : "newdomain.com",
    "count" : 2.0
}

/* 3 */
{
    "_id" : "olddomain.reference.org",
    "count" : 2.0
}


  1. kan jag skicka mongodb-frågan som en sträng i php

  2. Serialisera till objekt med scala mongo-drivrutinen?

  3. Rails anpassad miljö Resque.enqueue skapar inga jobb

  4. MongoDB grupp efter varaktighet span