查找属性的不同值的数量

时间:2014-06-20 13:06:06

标签: mongodb mongodb-.net-driver

我正在使用MongoDB数据库在C#中编写APS.NET MVC 5应用程序。假设我有一个名为MongoDatabase的{​​{1}}对象,其中包含my_dbMongoCollection个对象,称为Label。每个labels对象都有一些属性,其中一个是名为Label的字符串。每个tag值可以在不同的tag之间共享,以便某些Labels个对象具有相同的Label值。

我想知道此集合中tag有多少不同的值,并将这些值存储在某种数组中。

我是MongoDB的新手,所以我真的不知道如何做到这一点。到目前为止,我所做的只是获得tag

labels

但是我对我现在需要做的事情感到困惑。我可以手动迭代var labels = my_db.GetCollection<Label>("labels"); 中的每个Label,并检查之前是否已经看到labels的{​​{1}}属性。但是有一种更简洁的方法来使用MongoDB函数吗?谢谢!

2 个答案:

答案 0 :(得分:0)

有一个MongoDB方法:distinct,它应存在于任何API中。

答案 1 :(得分:0)

正如您在MVC 5 c#应用程序中所做的那样,MongoDB提供了C#LINQ驱动程序,它将帮助您使用LINQ查询MongoDB。

http://docs.mongodb.org/ecosystem/tutorial/use-linq-queries-with-csharp-driver/

希望这有帮助。

var query = (from e in labels.AsQueryable<labelClass>()
                  select e.tag).Distinct()