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

Meteor mongo aktualizuje zagnieżdżoną tablicę

Więc pierwszą rzeczą do powiedzenia jest $elemMatch nie jest wymagane w twoim przypadku, ponieważ chcesz dopasować tylko jedną właściwość tablicy. Używasz tego operatora, gdy potrzebujesz "dwóch lub więcej" właściwości z tego samego elementu tablicy, aby pasowały do ​​twoich warunków. W przeciwnym razie po prostu użyj "notacji kropkowej" jako standardu.

Drugi przypadek dotyczy $push , gdzie ten konkretny operator oznacza „dodawanie” elementów do tablicy. W twoim przypadku chcesz po prostu "zaktualizować", więc prawidłowym operatorem jest tutaj $set :

Activity.update(
    { "_id": activityId, "usersActivities.userId": Meteor.userId() },
    {
        "$set": {
            'usersActivities.$.startDate': start,
            'usersActivities.$.endDate': end
        }
    }
)

Więc pozycyjny $ operator tutaj jest tym, co pasuje do "znalezionego indeksu" z elementu tablicy i zezwala na $set operatora, aby „zmienić” elementy dopasowane w tej „pozycji”.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak używać zmiennych w funkcji mapy MongoDB Map-reduce

  2. Jakieś szczegółowe i konkretne powody, dla których MongoDB jest znacznie szybszy niż bazy danych SQL?

  3. Jak połączyć klientów mongodb z lokalną bazą Meteor MongoDB

  4. $in wymaga tablicy jako drugiego argumentu, znaleziono:brak

  5. Jak zarządzać użytkownikami i uwierzytelnianiem w MongoDB