<六>.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; }
}

 

posted @ 2022-06-16 23:10  许轩霖  阅读(255)  评论(0编辑  收藏  举报