当前位置: 首页 > news >正文

顺德企业网站建设榆林网络公司建设网站

顺德企业网站建设,榆林网络公司建设网站,怎么做网页截图,wordpress相册主题MongoDB聚合运算符:$rand 文章目录 MongoDB聚合运算符:$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阶段,筛选后的文档输出nameregistered字段,有7个选民在第三区,大约占全部的一半。

{ "name" : "Archibald", "registered" : true }
{ "name" : "Debarge", "registered" : false }
{ "name" : "Humphrey", "registered" : true }
http://www.yayakq.cn/news/269709/

相关文章:

  • 股票网站怎么做深圳福田华丰大厦网站建设
  • 网站建设的基本流程百度云免费做网站
  • 怎么做垂直自营网站请问电商是做什么的
  • 毕业设计模板网站湖北省建设厅网站
  • 网站设计基本原则陕西省城乡建设学校网站
  • iis7站长工具做课件用这15大网站
  • 新闻类网站如何做量化统计分工做网站如何
  • 关于珠海网站建设的优势九天传说超变单职业传奇页游
  • 中国廉政文化建设网站企业管理咨询公司收费标准
  • 美食网站建设背景wordpress 保存图片
  • 网站运营维护定制开发app到底要多少钱
  • 怎么找网站的根目录广西建设部网站
  • 网站可以只做移动端吗泰州模板开发建站
  • html门户网站开发源代码手工制作灯笼的步骤
  • 网站怎么做利于优化新手怎么做网络销售
  • 怎么做网站分析邯郸建设网站
  • 昆明网站设计制造外贸做网站建设哪家好
  • 如何搭建公司网站如何提高网站访问速度的文章
  • 用家用光纤宽带做网站室内设计师服务平台
  • 做外汇网站卖判刑多少年怎样免费建企业网站吗
  • 下饶网站建设当当网网站建设方案
  • 成品网站短视频源码搭建网站建设单子
  • 高校健康驿站建设指引怎么做一个自己的网页
  • 扁平化设计风格的网站模板珠海 网站开发
  • 四川城乡建设网站首页比较出名的游戏外包公司
  • 买空间去哪个网站优化是什么梗 棍勇
  • 网站排名大全怎么制作微信小程序
  • wordpress单位内网做网站云南网站建设百度
  • wordpress前端怎么写中山网站优化排名
  • 怎么修改公司网站图片谷歌网站流量统计