在MongoDB中按索引从结果数组中获取单个元素

要获得单个元素,请使用聚合和LIMIT。该skip()用于跳过的文件的具体数量。

首先让我们创建一个包含文档的集合-

> db.demo391.insertOne(
...    { "_id" : 101, "Name" : "Chris", Values: ["101", "102"] }
... )
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo391.insertOne(
...    { "_id" : 111, "Name" : "Chris", Values: ["101", "102"] }
... )
{ "acknowledged" : true, "insertedId" : 111 }
> db.demo391.insertOne(
...    { "_id" : 121, "Name" : "Chris", Values: ["101", "102"] }
... )
{ "acknowledged" : true, "insertedId" : 121 }

find()方法的帮助下显示集合中的所有文档-

> db.demo391.find();

这将产生以下输出-

{ "_id" : 101, "Name" : "Chris", "Values" : [ "101", "102" ] }
{ "_id" : 111, "Name" : "Chris", "Values" : [ "101", "102" ] }
{ "_id" : 121, "Name" : "Chris", "Values" : [ "101", "102" ] }

以下是通过索引从结果数组中获取单个元素的查询-

> var i=2;
> db.demo391.aggregate([
...    { $match : {"Name": "Chris"}},
...    { $skip : i-1},
...    { $limit : 1 }
... ]);

这将产生以下输出-

{ "_id" : 111, "Name" : "Chris", "Values" : [ "101", "102" ] }