要获得单个元素,请使用聚合和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" ] }