我必须从简单的mongo db数据库中选择不同的记录.我有很多简单的记录,这些记录看起来像这样:
{"word":"some text"}
Run Code Online (Sandbox Code Playgroud)
我的代码非常简单.
const string connectionString = "mongodb://localhost";
var client = new MongoClient(connectionString);
MongoServer server = client.GetServer();
MongoDatabase database = server.GetDatabase("text8");
MongoCollection<Element> collection = database.GetCollection<Element>("text8");
MongoCursor<Element> words = (MongoCursor<Element>)collection.FindAll();
Run Code Online (Sandbox Code Playgroud)
但我不知道如何从数据库中选择不同的单词.有人可以给我一些建议吗?
MongoDB API有一个distinct聚合命令,它返回为集合中指定键找到的不同值.你也可以在C#Driver中使用它:
var distinctWords = collection.Distinct("word");
Run Code Online (Sandbox Code Playgroud)
where collection- 是您示例中的实例.此查询将返回word集合中字段的所有不同值.
另外,正如@JohnnyHK在评论中提到的,你可以使用linq方法,因为它受C#驱动程序的支持:
var distinctWords = collection.AsQueryable<Element>().Select(e => e.Word).Distinct();
Run Code Online (Sandbox Code Playgroud)
我的猜测是让“word”成为该数据库的索引。然后使用一些 linq 在一个简单的表达式中查询它: var res = col.Query().Select(e => e.word).Distinct();
这将导致读取索引中的所有单词。
| 归档时间: |
|
| 查看次数: |
11442 次 |
| 最近记录: |