如何将控制台mongodb查询转换为C#mongo驱动程序v2查询?

如何将控制台mongodb查询转换为C#mongo驱动程序v2查询?,c#,mongodb,linq,aggregation-framework,C#,Mongodb,Linq,Aggregation Framework,我想创建一个mongodb C#driver 2查询,其结果与以下mongo cli命令几乎相同: db.myCollection.aggregate([{$group: { _id: null , "ids" : {$push: {$toString: "$_id"} } } }]) 我想要的输出是: { "ids" : [ "5cde5520f838ba2b580852ca", "5d3f012c555aef66082917b0",

我想创建一个mongodb C#driver 2查询,其结果与以下mongo cli命令几乎相同:

db.myCollection.aggregate([{$group: { _id: null , "ids" : {$push: {$toString: "$_id"} } } }])
我想要的输出是:

{ 
    "ids" : 
    [ 
        "5cde5520f838ba2b580852ca", 
        "5d3f012c555aef66082917b0", 
        "5d527092555aef4f28fee38b", 
        "5d52712f555aef4f28fee38c", 
        "5d52719e555aef4f28fee38d" 
    ] 
}
我已经使用Mongo的驱动程序重载Linq函数实现了这一点

myCollection
    .AsQueryable()
    .Where(tm => tm.status == mysatus)
    .Select(tm => tm.id)
如何创建将在服务器端而不是客户端解析的查询


使用聚合框架不是强制性的。

您可以找到所有的
\u id
并将它们返回如下列表:

public static List<string> GetIds()
{
    var context = new MyContext();
    var builder = Builders<MyCollection>.Filter;
    var filter = builder.Empty;
    var ids = context.MyCollection.Find(filter).Project(x => x.Id.ToString()).ToList();
    return ids;
}
publicstaticlist GetIds()
{
var context=new MyContext();
var builder=Builders.Filter;
var filter=builder.Empty;
var Id=context.MyCollection.Find(filter.Project)(x=>x.Id.ToString()).ToList();
返回ID;
}