`

MongoDB的查询数组

阅读更多
MongoDB查询数组学习笔记
首先我们先插入几个文档

> db.food.insert({“_id”:1,fruit”:["apple","banana","peach"]})
> db.food.insert({“_id”:2,fruit”:["apple","kumquat","orange"]})
> db.food.insert({“_id”:3,fruit”:["cherry","banana","apple"]})

 

我们想要查询既包含”apple”并且又包含”banana”的文档,就需要使用”$all“来查询
> db.food.find({“fruit”:{“$all”:["apple","banana"]}})
{_id:1,fruit:["apple","banana","peach"]}
{_id:3,fruit:["cherry","banana","apple"]}

 

还记得之前的”$in“吗,如果我们需要查询包含”apple”或者”banana”的文档,则使用”$in”

> db.food.find({“fruit”:{“$in”:["apple","banana"]}})
{_id:1,fruit:["apple","banana","peach"]}
{_id:2,fruit:["apple","kumquat","orange"]}
{_id:3,fruit:["cherry","banana","apple"]}

 

使用”$size“可以查询指定长度的数组

> db.food.find({“fruit”:{$size:3}})
{_id:1,fruit:["apple","banana","peach"]}
{_id:2,fruit:["apple","kumquat","orange"]}
{_id:3,fruit:["cherry","banana","apple"]}

 

使用”$slice“返回数组中的一个子集合


> db.blog.findOne()
{
    ”_id:ObjectId(“4e914ad2717ed94f8289ac08″),
    ”comments:[
        {
            "name":"joe",
            "email":"joe@example.com",
            "content":"good blog"
        },
        {
            "content":"Changed Comment",
            "email":"john@gmail.com",
            "name":"john"
        },
        {
            "name":"test",
            "email":"test@test.com",
            "content":"test"
        },
        {
            "name":"test1",
            "email":"test1@test.com",
            "content":"test1"
        },
        {
            "name":"test12",
            "email":"test12@test.com",
            "content":"test12"
        },
        {
            "name":"test123",
            "email":"test123@test.com",
            "content":"test123"
        }
    ],
    ”content:My first blog.”,
    ”title:HelloWorld
}

 

需要返回comments中的前两条数据,如下查询语句


> db.blog.findOne({},{“comments”:{$slice:2}})
{
    ”_id:ObjectId(“4e914ad2717ed94f8289ac08″),
    ”comments:[
        {
            "name":"joe",
            "email":"joe@example.com",
            "content":"good blog"
        },
        {
            "content":"Changed Comment",
            "email":"john@gmail.com",
            "name":"john"
        }
    ],
    ”content:My first blog.”,
    ”title:HelloWorld
}

 

查询comments中后两条数据的查询语句:

> db.blog.findOne({},{“comments”:{$slice:-2}})

还可以返回跳过几个文档之后的几个文档


> db.blog.findOne({},{“comments”:{$slice:[1,2]}})
{
    ”_id:ObjectId(“4e914ad2717ed94f8289ac08″),
    ”comments:[
        {
            "content":"Changed Comment",
            "email":"john@gmail.com",
            "name":"john"
        },
        {
            "name":"test",
            "email":"test@test.com",
            "content":"test"
        }
    ],
    ”content:My first blog.”,
    ”title:HelloWorld
}

 

常用:

1,db.items.find({itemId:201372979046})

2,可用Robomongo软件做可视化查询。

3,查询collections用命令Show collections

 

 

分享到:
评论

相关推荐

    MongoDB的数组查询操作符.pdf

    这篇文档主要介绍了 MongoDB 中的四个数组查询操作符:$all、$allindex、$allsize 和 $allslice。我们将逐一深入探讨这些操作符的用法和应用场景。 1. **$all** `$all` 操作符用于匹配数组字段中的所有指定元素。...

    Thinkphp使用mongodb数据库实现多条件查询方法

    在代码中还提到了另一个问题,即Thinkphp使用json_encode函数生成查询语句时,如果数组元素带有key,json_encode会把数组转换为对象的形式,而MongoDB无法识别这样的查询格式。因此,代码中将数组转换为对象的做法是...

    mongodb实现数组对象求和方法实例

    mongodb在计算集合数组值时候,我们通常会想到使用$group与$sum,但是如果是数组里面多个json对象,并且还需要根据条件过滤多个对象的内容该如何处理? 现在让我们来实现它,假设mongodb中有个user集合,其数据内容...

    MongoDB数组与文档查询.pdf

    在数组查询中,可能不直接使用 `group`,但它在聚合框架中是非常有用的。 在文档查询时,需要注意的是,如果直接以文档中的某个键作为条件进行查询,而该键在数据库中的文档中不存在,那么查询将不会返回任何结果。...

    MongoDB如何对数组中的元素进行查询详解

    本篇文章将详细介绍如何在MongoDB中对数组元素进行查询。 首先,MongoDB 的数组可以包含简单数据类型如数字、字符串,也可以包含嵌套的文档。例如,一个数组可以是 `[1,2,3]`,也可以是 `[{name:"t5"}, {name:"t7"}...

    sift.js, 使用mongodb查询筛选数组.zip

    sift.js, 使用mongodb查询筛选数组 使用mongodb查询验证对象的&筛选器数组 扩展文档 checkout http://docs.mongodb.org/manual/reference/operator/query/插件功能:Support

    mongoDB 多重数组查询(AngularJS绑定显示 nodejs)

    在处理多重数组查询时,MongoDB 提供了强大的查询工具,使得从嵌套的数组中检索数据变得简单。在本场景中,我们将讨论如何进行多重数组查询以及如何将查询结果在前端使用AngularJS绑定并显示。 首先,我们看到一个`...

    MongoDB高级查询用法大全

    MongoDB 高级查询用法大全 ...MongoDB 可以查询数组中的值,例如: ``` db.customers.find({ colors : "red" }); ``` 这些高级查询用法大全可以帮助开发者更好地使用 MongoDB 实现复杂的数据查询。

    MongoDB数组更新操作符.pdf

    在处理包含数组的数据结构时,MongoDB 提供了一系列的更新操作符,使得对数组元素的增删改查变得非常方便。本篇文章将详细讲解 MongoDB 中与数组相关的更新操作符。 1. **$push 操作符**: - `$push` 操作符用于向...

    MongoDB查询练习题及答案

    MongoDB 是一种流行的 NoSQL 数据库,以文档型数据存储为主,支持丰富的查询表达能力。在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users....

    MongoDB下根据数组大小进行查询的方法

    本文将详细讲解如何在MongoDB中根据数组大小进行查询,特别是如何实现对指定大小的数组以及某个范围内的数组大小的查询。 在MongoDB中,查询数组大小最直接的方法是使用`$size`操作符。例如,如果我们想要找出数组`...

    mongodb 查询语法和实例

    在MongoDB中,查询是获取数据的主要方式,而掌握其查询语法对于有效管理和操作数据至关重要。本篇将深入探讨MongoDB的查询语法及其实例。 1. **基本查询** MongoDB的基本查询使用`find()`方法,它可以接受一个JSON...

    NoSQL之MongoDB查询

    MongoDB对查询的支持非常到位,包含有关系运算、逻辑运算、数组运算、正则运算等等。 ### find简介 在MongoDB中,find函数是查询的核心语法,格式为“db.集合名称.find({查询条件} [,{设置显示的字段}])”。find...

    MongoDB查询操作符.pdf

    8. 正则表达式在数组字段中的应用:MongoDB允许在数组字段上使用正则表达式进行查询,这意味着你可以在数组内的字符串元素上执行正则表达式匹配。 9. 使用索引:创建索引可以显著提高查询性能,特别是对于涉及正则...

    mongoDB查询速查手册

    ### MongoDB查询速查手册知识点详解 #### 一、MongoDB简介 MongoDB是一款开源的、高性能的文档型数据库。它采用类似于JSON的数据结构存储数据,称为BSON(Binary JSON),这是一种二进制格式,用于存储文档。在...

    MongoDB查询语言Aggregation Pipeline:功能解析与代码示例

    1. **文档导向**:MongoDB存储BSON(二进制JSON)格式的文档,这些文档可以包含多种数据类型,如字符串、数字、数组、对象等,使得它在存储复杂数据结构时非常灵活。 2. **集合**:MongoDB中的文档被组织在集合...

Global site tag (gtag.js) - Google Analytics