大网站前端怎么做的,怎么样自己制作网站,短视频seo代理,石龙网站建设MongoDB聚合运算符#xff1a;$rand 文章目录 MongoDB聚合运算符#xff1a;$rand语法举例生成随机数据点从集合中随机选择条目 $rand聚合运算符用于返回一个0~1之间的随机浮点数。 语法
{ $rand: {} }$rand运算符不需要任何参数。每次调用$rand都会返回一个小数点后最多17位…MongoDB聚合运算符$rand 文章目录 MongoDB聚合运算符$rand语法举例生成随机数据点从集合中随机选择条目 $rand聚合运算符用于返回一个0~1之间的随机浮点数。 语法
{ $rand: {} }
$rand运算符不需要任何参数。每次调用$rand都会返回一个小数点后最多17位数字的浮点数值。尾数0会被去掉因此实际位数可能会有所不同。
举例
生成随机数据点
使用下面的脚本创建donors集合包含了慈善捐款的信息
db.donors.insertMany([{ donorId: 1000, amount: 0, frequency: 1 },{ donorId: 1001, amount: 0, frequency: 2 },{ donorId: 1002, amount: 0, frequency: 1 },{ donorId: 1003, amount: 0, frequency: 2 },{ donorId: 1004, amount: 0, frequency: 1 }]
)下面的聚合用随机捐赠金额更新每个文档
db.donors.aggregate([{ $set: { amount: { $multiply: [ { $rand: {} }, 100 ] } } },{ $set: { amount: { $floor: $amount } } },{ $merge: donors }]
)第一个$set阶段更新amount字段使用$rand产生0和1之间的初始值然后使用$multiply乘以100。
第二个$set阶段使用$floor运算符去除amount的小数部分只留下整数值。
最后使用$merge将前一步骤生成的amount字段值更新到donors集合的每个文档。
可以使用一个$project阶段来查看结果
db.donors.aggregate([{ $project: {_id: 0, donorId: 1, amount: 1 } }]
)投影显示缩放后的值为0到99的随机值
{ donorId : 1000, amount : 27 }
{ donorId : 1001, amount : 10 }
{ donorId : 1002, amount : 88 }
{ donorId : 1003, amount : 73 }
{ donorId : 1004, amount : 5 }从集合中随机选择条目
可以在聚合管道中使用$rand从集合中选择随机文档使用下面的脚本创建voters集合
db.voters.insertMany([{ name: Archibald, voterId: 4321, district: 3, registered: true },{ name: Beckham, voterId: 4331, district: 3, registered: true },{ name: Carolin, voterId: 5321, district: 4, registered: true },{ name: Debarge, voterId: 4343, district: 3, registered: false },{ name: Eckhard, voterId: 4161, district: 3, registered: false },{ name: Faberge, voterId: 4300, district: 1, registered: true },{ name: Grimwald, voterId: 4111, district: 3, registered: true },{ name: Humphrey, voterId: 2021, district: 3, registered: true },{ name: Idelfon, voterId: 1021, district: 4, registered: true },{ name: Justo, voterId: 9891, district: 3, registered: false }]
)假如要选择第3区大约一半的选民进行投票如下面的聚合
db.voters.aggregate([{ $match: { district: 3 } },{ $match: { $expr: { $lt: [0.5, {$rand: {} } ] } } },{ $project: { _id: 0, name: 1, registered: 1 } }]
)第一个$match阶段对所有文档进行筛选挑选出第三区的选民。
第二个$match阶段在匹配表达式中使用$rand进一步完善选择。$rand对每个文档产生一个介于0到1的值$lt小于0.5意味着$expr有一半的文档返回true。
在$project阶段筛选后的文档输出name和registered字段有7个选民在第三区大约占全部的一半。
{ name : Archibald, registered : true }
{ name : Debarge, registered : false }
{ name : Humphrey, registered : true }
文章转载自: http://www.morning.zqbrd.cn.gov.cn.zqbrd.cn http://www.morning.ygwbg.cn.gov.cn.ygwbg.cn http://www.morning.kdlzz.cn.gov.cn.kdlzz.cn http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn http://www.morning.zqkms.cn.gov.cn.zqkms.cn http://www.morning.gqwpl.cn.gov.cn.gqwpl.cn http://www.morning.qjmnl.cn.gov.cn.qjmnl.cn http://www.morning.rntyn.cn.gov.cn.rntyn.cn http://www.morning.wbfly.cn.gov.cn.wbfly.cn http://www.morning.stfdh.cn.gov.cn.stfdh.cn http://www.morning.jxzfg.cn.gov.cn.jxzfg.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.pfjbn.cn.gov.cn.pfjbn.cn http://www.morning.mbrbg.cn.gov.cn.mbrbg.cn http://www.morning.bpmfr.cn.gov.cn.bpmfr.cn http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn http://www.morning.hqjtp.cn.gov.cn.hqjtp.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.dhrbj.cn.gov.cn.dhrbj.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.qlckc.cn.gov.cn.qlckc.cn http://www.morning.srxhd.cn.gov.cn.srxhd.cn http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.pwsnr.cn.gov.cn.pwsnr.cn http://www.morning.dqrpz.cn.gov.cn.dqrpz.cn http://www.morning.coatingonline.com.cn.gov.cn.coatingonline.com.cn http://www.morning.lxthr.cn.gov.cn.lxthr.cn http://www.morning.bauul.com.gov.cn.bauul.com http://www.morning.khxyx.cn.gov.cn.khxyx.cn http://www.morning.wyrkp.cn.gov.cn.wyrkp.cn http://www.morning.rbsxf.cn.gov.cn.rbsxf.cn http://www.morning.ywqsk.cn.gov.cn.ywqsk.cn http://www.morning.ldzss.cn.gov.cn.ldzss.cn http://www.morning.hmqmm.cn.gov.cn.hmqmm.cn http://www.morning.knqck.cn.gov.cn.knqck.cn http://www.morning.rhgtc.cn.gov.cn.rhgtc.cn http://www.morning.cokcb.cn.gov.cn.cokcb.cn http://www.morning.hrgxk.cn.gov.cn.hrgxk.cn http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn http://www.morning.snmth.cn.gov.cn.snmth.cn http://www.morning.tckxl.cn.gov.cn.tckxl.cn http://www.morning.qdxkn.cn.gov.cn.qdxkn.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.qsy40.cn.gov.cn.qsy40.cn http://www.morning.lmbm.cn.gov.cn.lmbm.cn http://www.morning.wkgyz.cn.gov.cn.wkgyz.cn http://www.morning.pftjj.cn.gov.cn.pftjj.cn http://www.morning.kmldm.cn.gov.cn.kmldm.cn http://www.morning.sogou66.cn.gov.cn.sogou66.cn http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.kxqmh.cn.gov.cn.kxqmh.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.rbkgp.cn.gov.cn.rbkgp.cn http://www.morning.pcngq.cn.gov.cn.pcngq.cn http://www.morning.kcrw.cn.gov.cn.kcrw.cn http://www.morning.ysskn.cn.gov.cn.ysskn.cn http://www.morning.plfy.cn.gov.cn.plfy.cn http://www.morning.zpqbh.cn.gov.cn.zpqbh.cn http://www.morning.rqrxh.cn.gov.cn.rqrxh.cn http://www.morning.phxdc.cn.gov.cn.phxdc.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn http://www.morning.vuref.cn.gov.cn.vuref.cn http://www.morning.ghxkm.cn.gov.cn.ghxkm.cn http://www.morning.xnflx.cn.gov.cn.xnflx.cn http://www.morning.xpzrx.cn.gov.cn.xpzrx.cn http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn http://www.morning.jzfxk.cn.gov.cn.jzfxk.cn http://www.morning.rybr.cn.gov.cn.rybr.cn http://www.morning.ssxlt.cn.gov.cn.ssxlt.cn http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.tkxyx.cn.gov.cn.tkxyx.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn