首页 新闻 会员 周边 捐助

C# Mongodb 返回单个嵌套对象

0
悬赏园豆:40 [已解决问题] 解决于 2016-04-07 14:33

例如我有这样的一些数据,我想以Ps下的_id(101001)为条件,返回只包含Ps._id(101001)的父对象,请问该怎么写。

问题补充:

我感觉我好像已经用Linq查出

      var lq = from c in _or.GetAll()
                     where c.Ps.Any(p => p.Pcode == pCode)
                     select new { c.OId, P = c.Ps.First(p => p.Pcode == pCode) };

------------------------------------------------------------------

aggregate([{ "$match" : { "Ps._id" : "101064" } }, { "$project" : { "OId" : "$_id", "P" : { "$arrayElemAt" : [{ "$filter" : { "input" : "$Ps", "as" : "p", "cond" : { "$eq" : ["$$p._id", "101064"] } } }, 0] }, "_id" : 0 } }])

江小花儿的主页 江小花儿 | 初学一级 | 园豆:14
提问于:2016-03-31 15:44
< >
分享
最佳答案
0

db.getCollection('collection').find({"Ps._id":"101001"}, {Ps: false})

收获园豆:25
幻天芒 | 高人七级 |园豆:37207 | 2016-04-01 08:49

{Ps: false}应该就是Project的效果了。但是我这种方式,o.Ps.First时感觉好像是c#处理的并不是Mongodb做的这部分工作。

你有更好的办法吗?

江小花儿 | 园豆:14 (初学一级) | 2016-04-03 01:02

@江上烟波: 没在C#中使用过Mongo,所以不清楚如何处理,如果使用Mongo Shell,那么就应该是我给出的那个语句。

幻天芒 | 园豆:37207 (高人七级) | 2016-04-05 08:39
其他回答(1)
0
db.getCollection('collection').find({"Ps._id":"101001"})

 

收获园豆:15
Jaryleely | 园豆:367 (菜鸟二级) | 2016-03-31 17:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册