我需要从 API 返回“blocked-days”,这意味着在“orders”集合文档的“shippingDate”值中重复至少 3 次的日期。
示例:
{
shippingDate: 'sunday'
},{
shippingDate: 'monday'
},{
shippingDate: 'sunday'
},{
shippingDate: 'tuesday'
},{
shippingDate: 'wednesday'
}
将返回 ['sunday']
您可以使用这样的聚合:
$group
按天数添加,使用 $sum
获得每天出现的次数。$match
一天至少出现 3 次$project
仅返回当天的名称。db.collection.aggregate([
{
"$group": {
"_id": "$shippingDate","days": {
"$sum": 1
}
}
},{
"$match": {
"days": {
"$gte": 3
}
}
},{
"$project": {
"days": 0
}
}
])
哪个返回
[
{
"_id": "sunday"
}
]
MongoDB 使用 JSON 格式,因此您可以检索 JSON 格式。使用猫鼬你可以试试这个:
const queryResult = [
{
"_id": "sunday"
}
]
const desiredValue = queryResult.map(m => m._id)
console.log(desiredValue)
示例Chunk