我遇到了一个问题,C驱动程序没有使用Async Await或Synchronous方法返回任何数据。
当尝试在命令行中运行时,它工作得很好,下面是片段:

db.Collection_StudentResults.aggregate([ { $unwind: "$modules" }, { $match: { "studentNumber": "", "modules.code": "" } } ])

下面是我在C_中的设置:
public static async Task<BsonDocument> getSingleStudentData(string studentNumber)
    {
        var client = new MongoClient("mongodb://localhost:27017");
        var db = client.GetDatabase("dbStudents");
        var collection = db.GetCollection<BsonDocument>("Collection_StudentResults");

        var aggregate = collection.Aggregate()
            .Unwind("modules")
            .Match(new BsonDocument { { "studentNumber", studentNumber } });

        var result = await aggregate.ToListAsync();

        return result.FirstOrDefault();
    }

使用的驱动程序:v2.4.0
MongoDB版本:v3.2.10
在collection_studentresults中,第一个文档包含studentnumber和modules数组,在modules数组中,每个文档都有code字段。
请帮忙!
谢谢

最佳答案

对不起-我的坏,坏坏坏…
我错过了构建器脚本中的db=db.getsiblingdb,这导致数据进入根数据库。
一切顺利。

10-08 02:04