检索Mongo数组中的特定索引

时间:2016-11-01 00:51:18

标签: arrays mongodb mongoose mongodb-query

我有很多实体在DB中的这些实体上都有一个大数组。我想检索数组的第一个和最后一个元素(如果我得到所有数组,那么数据太多了)。我该怎么做 ? 我试过这个:

new Proxy

但它不起作用...... 谢谢你!

1 个答案:

答案 0 :(得分:1)

您可以使用聚合而不是$match,执行$slice

在Mongodb 3.2中,聚合​​中有$slice,因此您可以db.my_collection.aggregate([{ $match: { my_query: 'is_awesome' } }, { $project: { my_query: 1, firstElement: { $slice: ["$big_array", 1] }, lastElement: { $slice: ["$big_array", -1] } } }]) 位置1和-1处的项目:

$slice

在Mongodb< 3.2,$unwind无法在聚合中使用,因此您可以使用$groupdb.my_collection.aggregate([{ $match: { my_query: 'is_awesome' } }, { $unwind: "$big_array" }, { $group: { _id: "$_id", my_query: { $first: "$my_query" }, firstElement: { $first: "$big_array" }, lastElement: { $last: "$big_array" } } }]) ,以下内容适用于Mongodb 3.0:

...
"items": {
    "type": "object",
    "properties": {
      "description_ru":{
        "description": "Информация об ошибке на русском языке",
        "type": "string"
      },
      "description_en":{
        "description": "Информация об ошибке на английском языке",
        "type": "string"
      }
    },
    "additionalProperties": false
  },
"minItems": 2
...