您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10762|回复: 2
打印 上一主题 下一主题

[php学习资料] mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:  ^0 E$ [& M* w

% v+ F& h1 h) d+ e( ydb.getCollection('student').find({'age':{'$gt':'20'}}); C9 d4 W7 L8 Y, }& y) v
- u% A9 d- e/ |

9 ?0 N$ D7 U" ?' [+ I  W$ h) W% }& r! `0 F
$lt    <   (less  than )& p$ E; k& m% N( c
( O5 [, S  Q7 g$ P4 k$ K' b
$lte    <=  (less than  or equal to )0 e4 E3 ^# T. K2 c: T( g% ~8 j

) {5 Q# o7 G! R$ F4 |2 ?$gt   >    (greater  than )9 W$ D) l6 w: @6 G& [

9 P( i2 ]5 }/ {9 H# b$gte   >=    (greater  than or   equal to)/ P. I% B/ |2 P( M! s* L' {  g

1 D# @1 {  o) n  P+ T
游客,如果您要查看本帖隐藏内容请回复

" [, M' ?3 j% j( S  A+ d" \3 @" b5 w
5 w8 v/ i, K* ?0 W% s$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
: n4 @, @; Q  z) _" M$ j. ?9 x. X
5 V4 s& p% p# B: C% c$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
$ T1 Z( p+ W2 B* }. ^+ M2 m, a, b: w8 O" y6 L( R: ^" t
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list5 L: ?1 u/ |# }! P& Y+ @

! w$ D& I* E3 {, r8 d$ o. e7 z$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字  r" x6 G4 Q2 R9 Q5 ~% _
* M8 w( y1 Q7 `/ B) @" ^$ |- P
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
- @: F0 S% U7 Z9 W8 X  }( v
# K# ]  z* ~  H  L' i0 L$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
$ ?( c- M& h' P* }# ]8 ^2 G1 Z( b: a% d
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串  e# s) i- g% @

9 V" g. D, d. l2 y) A/ p$ q/ Y% L# [$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
, `0 N! E3 ^4 L0 B$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
1 N% ]2 @- u, ]6 C5 p9 \, W  p7 u$ N5 o/ k# C& [
$exists 键是否存在   {finaGoalLine:{'$exists':true}}
8 Q. B. ~" S5 z$ p/ J' a/ h
+ ]+ f' B+ ?% O& O$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]  S8 K: h. F" r! [& E% h/ `

/ `: i, M7 E* d( p$ S$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
9 T8 r7 x  _% M5 j; b6 [$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
4 j- T3 I( ^9 E0 @# E# V5 Z3 v
3 m/ j" I8 H, m- K9 }5 j

" {! @' a) e8 k. c6 J3 q# E8 P. k5 j6 G4 q& W5 ?( T1 Z( y

/ M& h, U% {* T
7 S3 {0 _2 t) T$ @0 w# c1 w$ @" ~$ Y

! a1 U& k( M1 r+ Y, \& |( ^
3 R& v% u0 t( T8 t3 Q8 p6 w
- Z/ _9 J. }  |2 j' v' F组合使用方法如下:
5 F5 ?3 ?: w& J' N
, F# f7 B: u) w: {( e* xdb.user.find({"age":{"$gte":18,"$lte":25}})
4 h6 u# s3 p0 H# c9 A' {5 F; |' g. _# M  X, B7 O2 u, ?" }0 o  W

9 S' x2 U  }5 p  g" s) h
  E2 X+ q5 k+ k2 J对于日期的条件查询方法:
& J$ `& A% ?' r2 j7 y1 f3 j6 b1 h) j( O+ I6 t9 P; D$ C4 D
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})+ _/ B! ?( T6 I) k4 E  o% I
# J) [" ~" @3 d! T" A6 C4 k- k
5 X2 w$ H+ V( x
0 {# ]4 T# I1 _7 U8 J
2) 不等于 $ne3 b  {* E( z9 B, G
! ~/ u9 w, O  V
例子:
3 p1 E  C* D8 K/ B# j  ?
2 }) O: P7 [3 X. rdb.taobao.find( { age: { $ne : 10} } );
$ D1 \  Y$ l* Z( V- Uphp7 查询mongodb方法大全$ ], F- Q5 B+ b+ w* x8 x0 s
游客,如果您要查看本帖隐藏内容请回复

. o. {" W/ J; s( [& {9 _) g$ r% o1 {3 A: q* e3 d
$ R0 ]% t' y, l+ b
+ a0 [4 t- u6 x
( i- v: Z% r- q  {7 U3 D/ |2 D
9 ?6 |( s/ H/ ?- j% q; p+ I
# `. h0 M. c$ [& n# N, ]

& r; w7 I' c: Q: b/ L! [3 Z- o: q  k+ h2 S- _

" p. [" u: r) j/ M/ L9 w$ v0 \" E
0 o, Y9 @, g3 a* ]* f, ^6 [1 J! J, q! E- X3 K& M3 E1 L# U+ T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or$ U$ I- [& k4 X0 d
  1. //and
    7 K7 G- J* i$ {4 q, L( c( m! X
  2. {key1:value1, key2:value2}" x; |/ Y" \3 l5 ^* V
  3. [key1=>value1, key2=>value2]
    9 v( Y" L9 ^. M; t( H- B
  4. //or
复制代码
. R9 A, b8 ]3 m, l

( n: w, e2 v% z. `( q  ^$ I
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-6-18 20:58 , Processed in 0.107355 second(s), 18 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!