sql >> Database >  >> NoSQL >> MongoDB

MongoDB - Hoe verschillende waarden te vinden op basis van een gedeeltelijke string

Voor Mongo 3.x kun je $split . gebruiken en $arrayElemAt :

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

En het resultaat zal zijn:

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

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

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


  1. MongoDB-query vergelijkt 2 velden in dezelfde verzameling zonder $where

  2. Node Js Hoe een bestand naar het geheugen te downloaden zonder het bestand naar het systeem te schrijven of zonder het bestand in een map te maken

  3. Een documentveld in mongo bijwerken op basis van de waarde van een ander veld

  4. Hoe items in MongoRepository te verwijderen met behulp van queryannotatie?