聚合管道

发布问题 回首页

聚合管道

★ 0 成为第一个关注这个问题的人

聚合管道查询中,怎么查询一个字段的长度大于 10?
LEN(user_id)>10,sqlserver中的这句在mongo中怎么写?

Edited on 6:38 下午
tingtingcheng@163.com 在大约 之前 回答了
  • 提问于
  • 回答数1 个
  • 浏览 35 次
  • 最新活跃于

1 个回答1

0

在Mongodb聚合管道中可以使用$strLenCP+$gt来完成此功能,如:

`{“_id”: ObjectId(“5821757bf28fbb3e3516eeaa”), “memid” : “f5869354″, “orderno” : “s00023″,”productno”:”20206539″, “comment”:”这个平底锅太好用了,性价比高”,”telephone” :”18385669845″}
{“_id”: ObjectId(“5821776ff28fbb3e3516eeab”), “memid” : “daisy”, “orderno” : “s04567″, “productno”:”20225699″,”address”:”comment”,”衣服穿起来很舒服好评” :”18855448645″}
{“_id”: ObjectId(“5821829ef28fbb3e3516eeac”), “memid” : “lucy”, “orderno” : “s08795″, “productno”:”20256339″,”address”:”comment”,”还行” :”13869669585″}
{“_id”: ObjectId(“582182b0f28fbb3e3516eead”), “memid” : “c5633256″, “orderno” : “s45689″,”productno”:”20285639″,”address”:”comment”,”不好用,不建议买” :”13699869588″}
`

`db.orderdetail.aggregate(
[
{
$project: {
"_id":0,
"orderno": 1,
"productno":1,
"comlength": { $strLenCP: "$comment" }
}
}
]
)
{“orderno” : “s00023″, “productno”:”20206539″, “comlength”:14}
{“orderno” : “s04567″, “productno”:”20225699″, “comlength”:10}
{“orderno” : “s08795″, “productno”:”20256339″, “comlength”:2}
{“orderno” : “s45689″, “productno”:”20285639″, “comlength”:8}
`

我之前写过的一个功能介绍,具体步骤可参考:

http://forum.foxera.com/mongodb/topic/1609/mongodb-strlencp%E7%9A%84%E4%BD%BF%E7%94%A8

Edited on 2:43 下午
tingtingcheng@163.com 在大约 之前编辑了回答

问题状态

  • Open

类别

2个参与者

聚合管道》有15个想法

  1. 谢答,但个人认为不准确,1.mr我觉得不适合实时计算,更贴合后期数据统计需求,2.aggregate必须支持自定义函数,就好像你定义个abc(1,2)一样肯定是计算了,现在的问题是abc(1,2)这个参数我想传个字段进去,比如abc($qty,2)这样….他就不好使了….难道大家没有在aggregate中用字段进行计算的经历么?

发表评论