<六>.netcore 查询 MongoDb 其他方法
上一篇试了创建文档,和检索文档的操作,这一篇来试试Find中的一些操作方法。
-
Limit,有时不想返回所有文档,就可以用这个方法进行限制数量
var connectionString = "mongodb://localhost:27017"; var client = new MongoClient(connectionString); var database = client.GetDatabase("School"); var collection = database.GetCollection<StudentNew>("StudentNew"); await collection.Find(x => x.Sex =="男") .Limit(2) .ForEachAsync(student => { Console.WriteLine(student.Name); }); class StudentNew { public ObjectId _id { get; set; } public string Name { get; set; } public string Age { get; set; } public IEnumerable<string> Address { get; set; } public string Sex { get; set; } }
-
Skip跳过一定数量的文档
var connectionString = "mongodb://localhost:27017"; var client = new MongoClient(connectionString); var database = client.GetDatabase("School"); var collection = database.GetCollection<StudentNew>("StudentNew"); await collection.Find(x => x.Sex =="男") .Skip(1) .ForEachAsync(student => { Console.WriteLine(student.Name); }); class StudentNew { public ObjectId _id { get; set; } public string Name { get; set; } public string Age { get; set; } public IEnumerable<string> Address { get; set; } public string Sex { get; set; } }
-
Sort 排序,1:正序排序,-1:倒序排序
var connectionString = "mongodb://localhost:27017"; var client = new MongoClient(connectionString); var database = client.GetDatabase("School"); var collection = database.GetCollection<StudentNew>("StudentNew"); await collection.Find(x => x.Sex =="男") .Sort("{Age:1}") .ForEachAsync(student => { Console.WriteLine(student.Name); }); class StudentNew { public ObjectId _id { get; set; } public string Name { get; set; } public string Age { get; set; } public IEnumerable<string> Address { get; set; } public string Sex { get; set; } }
-
Projection投影,即只查询需要查询的字段。
var connectionString = "mongodb://localhost:27017"; var client = new MongoClient(connectionString); var database = client.GetDatabase("School"); var collection = database.GetCollection<StudentNew>("StudentNew"); await collection.Find(x => x.Sex =="男") .Sort("{Age:1}") .Project("{Age:1}") .ForEachAsync(student => { Console.WriteLine(student); }); class StudentNew { public ObjectId _id { get; set; } public string Name { get; set; } public string Age { get; set; } public IEnumerable<string> Address { get; set; } public string Sex { get; set; } }