Здесь я создал запрос, чтобы получить последние 1000 различных product.name
Я отсортировал _id
, чтобы получить последние документы.
пожалуйста, посмотрите:
db.sample.aggregate([
{
$sort:{
"_id":-1
}
},
{
$group:{
"_id":"$product.name",
"date":{
$first:"$date"
},
"id":{
$first:"$_id"
},
"product":{
$first:{
"name":"$product.name",
"quantity":"$product.quantity"
}
}
}
},
{
$project:{
"_id":0,
"_id":"$id",
"date":1,
"product":1
}
},
{
$limit:1000
},
{
$out:"collection_name"
}
])
Этот запрос будет извлекать самые последние документы (отдельные), а вывод будет записан в новую коллекцию collection_name
Я использовал $out
для этого.
ПРИМЕЧАНИЕ
Обращайтесь с $out
осторожно, потому что он перезапишет коллекцию.
Подробнее о $out
см. здесь .
Надеюсь, это поможет :)