在mongoDB中获取数组元素位于文档中的位置

时间:2016-11-07 16:33:51

标签: node.js mongodb mongoose mongodb-aggregation

我使用mongoose在node.js中连接mongodb,现在我有一个文档架构,如下所示

var ArraySchema = new Schema({
     array: [{type: String}],
     counter: {type: 'Number', required: true}
});

现在我想获取文件中存在的位置计数器数组元素,我在SO和大多数问题上阅读了很多这样的问题我发现了mongoose聚合,但我不知道如何使用聚合来解决我的问题。

如果你们中的任何人使用了聚合,请帮助我。

2 个答案:

答案 0 :(得分:1)

您可以使用此查询执行此操作:

db.pos.aggregate([
   {
      $project:{
         result:{
            $arrayElemAt:[
               "$array",
               "$counter"
            ]
         }
      }
   }
])

答案 1 :(得分:1)

在我的猫鼬中使用此查询。

var aggregation = [
{
  $project : {
    array :  {$arrayElemAt: [ "$array", "$counter" ] }  
    }
}]
db.collectionName.aggregate(aggregation).exec(function(err, model){
if(err){
// handle error}
console.log(model);
})