`

MongoDB下查询数组的尝试记录

阅读更多

[root@sunrise16 bin]# ./mongo
MongoDB shell version: 2.0.0
connecting to: test

插入一个带有数组元素的文档。
> db.food.insert({"fruit": ["apple", "banana", "peach"]})
> db.food.find()
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }

查询数组元素中包含某个值的文档。
> db.food.find({"fruit": "banana"})
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }

> db.food.find({"fruit": {"$all": ["banana"]}})
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }

查询匹配指定数组的文档。注意要完全相同,数量和顺序都不能有错,否则找不到。

> db.food.find({"fruit": ["banana"]})
> db.food.find({"fruit": ["apple", "banana", "peach"]})
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }
> db.food.find({"fruit": ["banana", "apple", "peach"]})

查询数组元素中包含多个指定值的文档,全部包含,顺序无关。

> db.food.find({"fruit": {"$all": ["banana", "apple", "peach"]}})
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }

查询包含多个值之一的文档。似乎无法实现!

> db.food.find({"fruit":["banna","cherry"]})
> db.food.find({"fruit":{"$all":["banna","cherry"]}})
> db.food.find({"fruit":{"$in":["banna","cherry"]}})

查询指定长度的数组。但不能查询指定长度范围的数组。

> db.food.find({"fruit": {"$size": 3}})
{ "_id" : ObjectId("4ea6a4ef0b12b1d429b4057f"), "fruit" : [ "apple", "banana", "peach" ] }
> db.food.find({"fruit": {"$size": 2}})
> db.food.find({"fruit": {"$size": 4}})
退出。
> exit
bye
[root@sunrise16 bin]#

2
1
分享到:
评论
2 楼 codingstandards 2012-04-25  
zsw12013 写道
我想知道一下用java怎么去实现

MongoDB提供了Java语言的API的,请到官方站点找一下
1 楼 zsw12013 2012-04-24  
我想知道一下用java怎么去实现

相关推荐

    MongoDB;学习资料

    5. **聚合框架(Aggregation Framework)**:MongoDB的聚合框架允许用户处理数据记录并返回计算结果,类似于SQL的聚合函数。它提供了管道操作,可以对数据进行多阶段处理。 6. **分片(Sharding)**:为了实现水平...

    php实现的mongodb操作类

    此方法接受一个可选的查询条件,如果没有条件则查询第一条记录,否则根据条件进行查询。 通过以上的代码分析,我们可以看到`Mongo_db`类是如何将MongoDB的基本操作封装到PHP类中的,使得开发者可以更方便地进行...

    MongoDB原子操作.pdf

    例如,当你尝试减少书籍库存(`available`字段)并同时添加新的借阅记录(`checkout`字段)时,这两个动作要么全部完成,要么都不完成,避免了库存减少但未记录借阅的情况。 2. **原子操作数据模型** 在图书馆书籍...

    php操作MongoDB类实例

    MyMongo类的where方法用于添加查询条件,它接收一个数组参数,数组中的键值对将被用于构建MongoDB的查询条件。如果传入参数为空或不是数组,则会报错。该方法的亮点在于允许链式调用,便于灵活构建复杂的查询语句。 ...

    MongoDB教程之数据操作实例

    例如,当尝试更新具有相同 `name` 的多条记录时,只有第一条会被更新。如果希望更新所有匹配的文档,可以使用 `update()` 方法的第三个参数指定为 `true` 来执行多文档更新。 4. **修改器**: 修改器是 MongoDB ...

    mongodb中非常好用的Aggregate入门教程

    MongoDB的`aggregate`函数是一个强大的工具,用于处理数据记录并返回计算后的结果。它允许用户执行类似于SQL的聚合操作,如`GROUP BY`、`JOIN`、`WHERE`等,但提供了更灵活和面向文档的处理方式。在MongoDB中,`...

    MongoDB数据库安装配置、基本操作实例详解

    MongoDB的文档类似JSON对象,便于存储和查询内嵌的对象及数组。MongoDB还支持通过本地或网络方式创建数据镜像,从而提供了强大的扩展性。随着负载的增加,MongoDB可以通过分布式计算的方式分布在多个节点上,即所谓...

    PHP工程师面试笔试真题(某知名搜索引擎提供商)-附解析.doc

    - 不只是数字记录行需要索引,任何能够提升查询效率的字段都可以考虑建立索引。 6. **全文检索技术**: - Sphinx是一个支持SQL的全文检索引擎,可以与MySQL配合使用,提供更专业的搜索功能。 - Solr比Lucene搜索...

    智能点餐游戏

    在这个游戏中,每个食品图片作为操作元素,需要有清晰的视觉反馈,例如选中状态的变化,以告知用户其选择已被记录。 2. **事件监听**:为了响应用户的点击操作,程序需要设置事件监听器。当用户点击食品图片或删除...

    在laravel中实现事务回滚的方法

    4. 若更新成功,则尝试向 `wallet_deal` 表插入新的交易记录。 5. 如果创建交易记录失败,同样抛出异常。 6. 根据 `$update` 参数决定是更新管理账户的余额,还是插入新的管理记录。 7. 在所有操作完成后,调用 `DB:...

    基于PHP的AirPHP轻型开源框架兼容SAE平台源码.zip

    它的语法吸收了C语言、Java和Perl的特点,易于学习,同时拥有丰富的函数库,可以处理各种数据类型,如字符串、数组、对象等。PHP支持多种数据库连接,如MySQL、PostgreSQL、Oracle等,且具有跨平台的特性。 **轻量...

    myFrist

    【标题】"myFrist"看起来像是一个个人项目或者初学者的编程练习,可能是为了记录或分享学习历程。由于没有提供具体的描述,我们只能根据这个简单的标题进行一些基础的IT知识探讨。 在IT领域,"myFrist"可能是指一个...

    后端开发人员:!로써로드맵따라서식보기!

    2. 数据库:深入学习SQL(结构化查询语言),了解关系型数据库如MySQL、PostgreSQL,以及非关系型数据库如MongoDB、Redis。掌握数据库设计、事务处理、索引优化等技能。 3. 后端框架:选择一种主流的后端框架,如...

    express-login

    这些信息可以存储在数据库中,如MongoDB或MySQL。为了简化,我们可以暂时用内存存储: ```javascript let users = []; app.post('/register', (req, res) => { const { username, password } = req.body; // ...

Global site tag (gtag.js) - Google Analytics