选择回一对配对的BsonDocuments?

时间:2019-04-10 15:51:30

标签: c# mongodb linq

我正在尝试使用BsonDocument连接两个未键入的对象。这些查询是基于某些外部数据生成的。我正在构建表达式树,并将其传递给Linq查询。

我的查询如下所示:

var plan = _db.GetCollection<BsonDocument>("table_1")
.Where(someFunc)
.Join(_db.GetCollection<BsonDocument>("table_2"),
  t1=> t1["some_key"],
  t2=> t2["some_key"])
(t1v,t2v)=> new Tuple<BsonDocument, BsonDocument>(t1v,t2v)).ToString();

这将引发null引用异常。 但是,如果我使用匿名对象,它将正常工作。

var plan = _db.GetCollection<BsonDocument>("table_1")
.Where(someFunc)
.Join(_db.GetCollection<BsonDocument>("table_2"),
  t1=> t1["some_key"],
  t2=> t2["some_key"])
(t1v,t2v)=> new {t1v, t2v}).ToString();

这会产生我想要的适当放松::

aggregate([{ "$match" : { "location" : { "$geoWithin" : { "$centerSphere" : [[-73.485354000000001, 40.759214], 0.00025232195545501769] } } } }, { "$lookup" : { "from" : "table_2", "localField" : "some_key", "foreignField" : "some_key", "as" : "t2" } }, { "$unwind" : "$t2v" }])

使用元组在做什么错? (我尝试过的所有异常匿名对象似乎都抛出错误)

0 个答案:

没有答案