sean xiao

  • 主页
  • 所有文章
所有文章 关于我

sean xiao

  • 主页
  • 所有文章

mongo的in和all查询

2016-04-09

在使用mongodb查询数据时候,有些字段是数组,我们需要在用$all来查询数据。($all的条件值是数组)

源数据:

1
2
3
4
5
6
7
8
9
10
{
"_id" : ObjectId("5708f9214b9270aaee6c978d"),
"number" : [
"first",
"second",
"third"
]
}
{ "_id" : ObjectId("5708f9404b9270aaee6c978e"), "number" : [ "first" ] }
{ "_id" : ObjectId("5708f9454b9270aaee6c978f"), "number" : [ "second" ] }

查询包含”first”,”second”的数据

1
2
3
4
5
6
7
8
9
10
11
12
命令:db.test.find({"number":{"$all":["first","second"]}})
结果:
{
"_id" : ObjectId("5708f9214b9270aaee6c978d"),
"number" : [
"first",
"second",
"third"
]
}
数组内部元素的顺序对查询结果没有影响
命令:db.test.find({"number":{"$all":["second","first"]}})

用$all会搜索出包含查询条件中的所有元素的数据。查询值各个元素的的关系是与的关系。但是如果我们想查询满足他们之间关系是或关系的数据,这个时候我们要使用$in这个操作。

1
2
3
4
5
6
7
8
9
10
11
12
命令:db.test.find({"number":{"$in":["first","second"]}})
结果:
{
"_id" : ObjectId("5708f9214b9270aaee6c978d"),
"number" : [
"first",
"second",
"third"
]
}
{ "_id" : ObjectId("5708f9404b9270aaee6c978e"), "number" : [ "first" ] }
{ "_id" : ObjectId("5708f9454b9270aaee6c978f"), "number" : [ "second" ] }

在mongodb中用$in来查询数据数据不会按照数组的顺序来显示结果。(扩展:在MySQL数据库中in操作查询数据可以find_in_set来显示数据的顺序)

  • mongo

扫一扫,分享到微信

微信分享二维码
nginx解析PHP页面空白
mongo排序问题
© 2017 sean xiao
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于我

tag:

  • php
  • 随笔
  • apache
  • go
  • http
  • linux
  • mongo
  • nginx
  • php5-fpm
  • yii2

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

我就是我,不需要刻意的去证明…