文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MongoDB中怎么查询数组下标

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关MongoDB中怎么查询数组下标,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

  Mongodb的集合b中,保存了姓名和朋友(数组)。朋友数组中的人名是按照排名顺序保存的,如下:

>db.b.find({"name":"jim"})

{ "_id" :ObjectId("544f3bf8cdb02668db9ab229"), "name" :"jim", "friends" : [ "t

om", "jack","luke", "rose", "james", "sam","peter" ] }

 Mongodb可以查找指定排名的人名,例如查找jim的朋友当中,排名第一的人名:

> db.b.find({"name":"jim"},{"friends":{"$slice":[0,1]}})

{ "_id" :ObjectId("544f3bf8cdb02668db9ab229"), "name" :"jim", "friends" : [ "t

om" ] }

  但是无法查找jim的朋友当中,“luke”的排名数值。集算器esProc解决这个问题的脚本是:

MongoDB中怎么查询数组下标

A1:连接mongodb,ip和端口号是localhost:27017,数据库是test,用户名和密码都是test。如果需要其他参数的话可以按照mongo://ip:port/db?arg=value&…格式继续写参数。

  A2:使用find函数从mongodb中取数,形成游标。集合是b,过滤条件是name=jim,指定键是name和friends。可以看出find函数和mongdb的find函数类似。esProc的游标是分批读取和处理数据,可以避免数据量过大,内存出现溢出的情况。

A3:因为数据量不大,所以这里fetch出游标的所有记录。

A4:使用pos函数,查出luke的位置。

运行的结果是:

MongoDB中怎么查询数组下标

需要说明的是:esProc并不包含mongodb的java驱动包。用esProc来访问mongodb,必须提前将mongodb的java驱动包(要求2.12以上版本,如:mongo-java-driver-2.12.2.jar)放到[esProc安装目录]\common\jdbc中。

esProc协助mongodb计算的脚本很容易集成到java中,只要增加一行A5,写成result A4即可向java输出resultset形式的结果,具体的代码参考esProc教程。同样,用java调用esProc访问mongodb也必须将mongdb的java驱动包放到java程序的classpath中。

关于MongoDB中怎么查询数组下标就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯