C#MongoDriver Lookup

时间:2018-01-08 22:29:44

标签: c# mongodb

我试图在我的mongo系列上进行查找。

我有一个名为wishlists和collection的名为wish的集合。

每个愿望都引用了名为wishlistId的心愿单。

我试图通过id = userId。

为用户提供所有愿望清单

这是我的查询(wishlistService.GetAll()):

return this.collection.Aggregate().Match(Builders<WishlistModel>.Filter.Where(o => o.userId == userId)).Lookup("wishes", "_id", "wishlistId", "result").ToListAsync();

当我使用调试器查看结果时,它在其中的某处有正确的数据,但是当我试图将其返回为Ok结果时,它将失败。

var userId = User.Identity.Name;
List<BsonDocument> wishlists = await this.wishlistsService.GetAll(userId);
return Ok(wishlists);

Angular http请求中的错误是:

  

获取http://127.0.0.1:5000/api/wishlists net :: ERR_INCOMPLETE_CHUNKED_ENCODING

这是我在查看wishlists变量时在调试器中看到的内容。 enter image description here

我确定在查询数据时我做错了什么,但我不确定什么是.NET新手

1 个答案:

答案 0 :(得分:0)

经过一天的摆弄,我发现了正确的方法。

您必须为JsonSerializer设置严格模式。

var jsonWriterSettings = new MongoDB.Bson.IO.JsonWriterSettings { OutputMode = MongoDB.Bson.IO.JsonOutputMode.Strict };

然后从控制器中的服务序列化结果。

return Ok(wishlists.ToJson(jsonWriterSettings));