Tag: 聚合框架

MongoDB:用两个相同的字段$ match和$ eq查询文档

如果我想要document.a == document.b,返回集合中所有文档的最佳方法是什么? 我试过了 db.collection.aggregate([ { $match: { $eq: [ '$a', '$b' ] } }]) 但它返回没有错误或结果,因为我认为它是字面上匹配string“$ a”和“$ b”。 有没有不同的方式来指定这些是字段? db.collection.aggregate([ { $project: { eq: { $cond: [ { $eq: [ '$a', '$b' ] }, 1, 0 ] } } }, { $match: { eq: 1 } }]) 以上的工作,但需要额外的步骤,再次查询它find的任何文件或投影所有可能的领域。 有没有更好的方法来实现这个查询?

对于字段大于或等于数字的logging,mongodb聚合filter

我有一个四阶段聚合查询forms的匹配 – >组 – >项目 – >sorting。 聚合工作正常,并产生一个如下所示的数组。 { count: 48, ISP: 'LEASEWEB USA', percentRisky: 100 }, { count: 51, ISP: 'ARETI INTERNET LTD', percentRisky: 100 }, { count: 82, ISP: 'TINET SPA', percentRisky: 100 }, { count: 109, ISP: 'GIGLINX', percentRisky: 100 }, { count: 142, ISP: 'EGIHOSTING', percentRisky: 100 }, { count: 857, […]

是否有可能mongodb的$项目返回一个数组?

MongoDb的$项目聚合操作符是否有可能将文档重构为一个数组? 这是我到目前为止所做的: var pipeline = []; var project = { $project : { x: "$_id", y: "$y" , _id : 0 } }; pipeline.push(project); model.aggregate( pipeline, callback); 这给了我输出的forms: [ { x: '…', y: '…' } …. ] 我想拥有: [ ['..','..'] …. ] 我可以很容易地通过迭代来重构输出,但是真的很好奇,知道聚合本身是否可以返回数组而不是对象。