在 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() 方法显示集合中的所有文档。查询如下所示 −

> 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 ]

更新日期:2019 年 7 月 30 日

1 千+ 视图

开启你的 职业

通过完成课程获取认证

开始
广告