列出MongoDB中某个字段的所有值?

要获取MongoDB中某些字段的所有值的列表,可以使用distinct()。语法如下-

db.yourCollectionName.distinct( "yourFieldName");

为了理解上述语法,让我们用文档创建一个集合。使用文档创建集合的查询如下-

> db.listAllValuesOfCeratinFieldsDemo.insertOne({"ListOfValues":[10,20,30]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8fc89ed3c9d04998abf011")
}
> db.listAllValuesOfCeratinFieldsDemo.insertOne({"ListOfValues":[40,50,60]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8fc8abd3c9d04998abf012")
}
> db.listAllValuesOfCeratinFieldsDemo.insertOne({"ListOfValues":[10,20,30]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8fc8d7d3c9d04998abf013")
}
> db.listAllValuesOfCeratinFieldsDemo.insertOne({"ListOfValues":[40,50,70]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c8fc8e2d3c9d04998abf014")
}

find()method的帮助下显示集合中的所有文档。查询如下-

> db.listAllValuesOfCeratinFieldsDemo.find().pretty();

以下是输出-

{
   "_id" : ObjectId("5c8fc89ed3c9d04998abf011"),
   "ListOfValues" : [
      10,
      20,
      30
   ]
}
{
   "_id" : ObjectId("5c8fc8abd3c9d04998abf012"),
   "ListOfValues" : [
      40,
      50,
      60
   ]
}
{
   "_id" : ObjectId("5c8fc8d7d3c9d04998abf013"),
   "ListOfValues" : [
      10,
      20,
      30
   ]
}
{
   "_id" : ObjectId("5c8fc8e2d3c9d04998abf014"),
   "ListOfValues" : [
      40,
      50,
      70
   ]
}

这是获取MongoDB中某个字段的所有值的列表的查询。我们正在显示字段'ListOfValues'的记录-

> db.listAllValuesOfCeratinFieldsDemo.distinct( "ListOfValues");

以下是输出-

[ 10, 20, 30, 40, 50, 60, 70 ]