2016-05-22 6 views
0

У меня есть этот код:

{ 
    _id: { 
     "$push": "$category.name" 
    } 
} 

, но когда я запускаю это, то это ошибки:

invalid operator $push 
+1

Вы можете использовать ссылку [изменить], чтобы показать нам полный агрегацию трубопровода, некоторые образцы документов и ожидаемый результат? В зависимости от того, какой тип агрегата вам нужен, вам нужен групповой ключ как '_id' отдельно от накопленных полей, т. Е. Конвейер' $ group' должен иметь следующую структуру '{'_id': '$ key', 'categories' : {'$ push': '$ category.name'}} ' – chridam

ответ

1

его плохой способ использовать $ толчок в $ группе (_id поле) $ группа (_id поле) используется для группирования данных в коллекции так $ толчок недействителен оператор в «поле _ID» так только вы получаете эту ошибку

$ толчок использовать этот способ

это мои данные

{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:00:00Z") } 
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-02-03T09:00:00Z") } 

db.sales.aggregate([ 
{ 
    $group: 
    { 
     _id: { day: { $dayOfYear: "$date"}}, 
     itemsSold: { $push: { item: "$item"} } 
    } 
}]) 
Смежные вопросы