MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Agregacja MongoDB z DBRef

Nie możesz użyć DBRef wartości z ramami agregacji. Zamiast tego musisz użyć przetwarzania JavasScript mapReduce aby uzyskać dostęp do nazw właściwości, których używają:

db.coll.mapReduce(
    function() {
        emit( this.source.$ref, this["total_price"] )
    },
    function(key,values) {
        return Array.sum( values );
    },
    {
        "query": { "sold_at": { "$gte": start, "$lt": end } },
        "out": { "inline": 1 }
    }
)

Naprawdę nie powinieneś używać DBRef w ogóle. Użycie jest teraz w zasadzie przestarzałe i jeśli uważasz, że potrzebujesz zewnętrznego odniesienia, powinieneś „ręcznie odwoływać się” do tego za pomocą własnego kodu lub zaimplementowanego przez inną bibliotekę, dzięki której możesz to zrobić w znacznie bardziej obsługiwany sposób.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak odzyskać upuszczoną bazę danych MongoDB?

  2. Błąd podczas instalacji mongodb na Ubuntu 16.04

  3. Jak uniemożliwić użytkownikowi mongo upuszczenie kolekcji?

  4. Pobierz zestaw wszystkich unikalnych wartości w polu tablicy

  5. $nin z $expr