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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
查询表中学生年级大于20,如下:* ]" N) ^' F4 A' Y5 x" x

/ D: T( B# Z( C+ G& Ldb.getCollection('student').find({'age':{'$gt':'20'}})4 C; p! m  l' H% x7 ^1 E

4 P) U* Z, @5 J. f: ~* t. P& a/ B2 P. w3 N" b
& k. u( ?) d) b8 ?+ _1 g4 a: A' K
$lt    <   (less  than )8 f) H1 c& I5 ?# r1 Q6 i

/ B6 ?; A- H$ R( j$lte    <=  (less than  or equal to )/ f2 ~4 k" D; n1 e# x& A) @' c
% i8 M* q/ s  J
$gt   >    (greater  than )$ {" Q  @$ F& {0 X. ?8 e# u
$ V- z1 J8 d. n+ q7 Z
$gte   >=    (greater  than or   equal to)" J8 v' A) O' G5 b1 M

- {$ G2 S& H# ?  `: K4 V+ T) {
游客,如果您要查看本帖隐藏内容请回复
% L/ d5 c) T/ ?6 q
  m% Z! G4 |" l; R
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}/ Y6 O& d; Q4 [3 e2 R8 M0 p
& k  N9 Q% \; N& r$ T& N# H% i, A
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
2 `/ X: q4 a% k7 y5 ]! _1 X/ t6 U3 t: x2 V! }1 a5 S8 w; k' g
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list! u' @( ^: I) J' c) u  f) M$ A3 g# w

1 }/ m6 R6 ?& `, i: `8 @8 A9 S$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字+ y) }$ c9 \( n& W

' `0 X) V0 q0 C( L/ u  w$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
5 y1 J* w7 D6 P5 N. M3 A% W1 G4 e# A1 F% ], N+ n  K/ W
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
: `2 v9 q* {4 O, u0 A0 c% C$ I# `6 t8 |8 ^2 m
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串/ C; Y+ [- J+ s! C9 z0 x
# _0 h: q6 d$ s
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})1 \0 t0 Y7 O  U: `
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
9 C* [( |0 V+ |: X& s" i
; r* I" }1 v0 u( k' H% u/ T$exists 键是否存在   {finaGoalLine:{'$exists':true}}
& |' w/ v3 R' X% V
7 c# z9 X, J9 b* ^$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]- W2 w" A7 m: M1 S

' t6 Q8 N5 A% w" `1 l/ @- u8 n8 B$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],* o6 U2 @/ h8 D1 \- j3 [: U; |
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 ( H: B5 V$ i9 _

8 v; w. V' L) q% V2 @: T! T7 O2 i

0 F6 K" p1 D0 I) M/ u
1 H6 {, d8 u, W7 h

  _2 i1 @2 f* c' R
" @& s3 k+ ]: j+ I2 B/ m2 N- }

& ^/ s! ~3 ^3 O0 l3 I) V" ]8 M3 }* w  a6 |* E( Y: V
" h7 }$ g. |1 k$ X% M3 \
组合使用方法如下:: S/ c2 n. v  k# W7 W# ]
. p, D! E* z! p- E% e+ n
db.user.find({"age":{"$gte":18,"$lte":25}})9 i# u. f2 A" p

9 k2 X+ M% \+ u- Q0 \4 @* m+ p/ C$ z" y4 `, g7 d
# y7 P9 E7 y% |0 l8 z
对于日期的条件查询方法:% W9 U. _& }2 |) L: @/ n  O

- N2 r, S: t% Z6 jdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
. @6 S3 y' ~" B0 e* Z  k; r" S, l8 w! Y5 x
! M; s9 ]0 r- Q3 J2 U: O
# l7 B0 l3 a9 ]% v. g% L
2) 不等于 $ne
. B0 |" p! x0 y6 }
  |: k! R& w9 g8 s3 O例子:5 D# h! ^( u$ H% r6 S! F, F4 b
& G  ^; X- x& T2 X) g4 i: W
db.taobao.find( { age: { $ne : 10} } );$ n5 w% Q6 x' s8 [  ]8 j0 f
php7 查询mongodb方法大全8 l, y! \6 R. R$ Y
游客,如果您要查看本帖隐藏内容请回复
7 o7 r- E+ s& g; R
7 L1 _& a( ?4 z% \' _
# n9 h# }0 Y! i6 t* V" ^6 p# ~' x! k

0 B$ x% D- d" A8 I, Y1 q" |2 |2 G4 h' O1 M% S# W% Z
/ w& v- C9 k* ]7 k
9 v+ H) \& s$ X4 C& |

1 F1 m  a0 s; `
+ \% B' z3 X; i# C# N
4 A) i8 F/ ?3 C% v4 p3 i. A; n) q9 ?; A: I* X- T) h1 E. R  F7 u! v

& U6 s# p' z6 a: z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
板凳
 楼主| 发表于 2019-5-16 15:39:54 | 只看该作者
'sort' => ['id'=> -1] //排序-1是降序  1为升序
回复 支持 反对

使用道具 举报

沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or# J9 B$ f; D0 @- j$ K! M' I
  1. //and( x' ?0 @2 t3 {
  2. {key1:value1, key2:value2}5 }# `; a2 z1 q4 V
  3. [key1=>value1, key2=>value2]
    1 o  G/ {. c6 ~8 k$ |6 e
  4. //or
复制代码
* X( @7 w) z5 z
1 c5 Q9 h; N1 e$ `4 M7 p' Y7 e
回复 支持 反对

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-17 18:15 , Processed in 0.152921 second(s), 22 queries .

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