Pin*_*jee 4 mongodb aggregation-framework
我有一个集合,其中投资是mongodb文档中的一个数组。现在使用聚合,我试图过滤投资长度大于5倍的结果,然后使用匹配查询进行下一个处理。
Collection{
_id:000000
---------------------
"investments" : [ {
hhhhhhhhhhhhhh
},
{
hhhhhhhhhhhhhh
} }]
-----------------
Run Code Online (Sandbox Code Playgroud)
我像下面这样写的匹配查询不起作用。有什么建议么:
db.companies.aggregate( [
{ $match: {"founded_year" : 2004},
{ "investments" : {$size: : { $gte: 5 } } } },
----------------------------------
--------------------------------
]}
Run Code Online (Sandbox Code Playgroud)
Ale*_*lla 11
aggregate
:db.companies.aggregate([
{ $match: { "founded_year":2004 } },
{ $project: { founded_year:1,
moreThanFive: { $gt: [ {$size: "$external_links" }, 5 ] } } },
{ $match: { moreThanFive : true }} ,
])
Run Code Online (Sandbox Code Playgroud)
您将需要:
1.包括一个$project
阶段,以查找投资数量(size
数组的),并检查该投资数量是否大于5。2
.然后执行另一个$match
阶段以筛选moreThanFive
等于的投资true
。
find
:db.companies.find({'investments.5': {$exists: true}})
Run Code Online (Sandbox Code Playgroud)
您询问investments
数组中的位置编号6是否存在。
归档时间: |
|
查看次数: |
10980 次 |
最近记录: |