如何将控制台mongodb查询转换为C#mongo驱动程序v2查询?
我想创建一个mongodb C#driver 2查询,其结果与以下mongo cli命令几乎相同:如何将控制台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",
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;
}