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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
0 U, M9 ]. [/ L1 r( D6 L+ Y9 }7 p* i! M: K7 D9 W9 f! W
db.getCollection('student').find({'age':{'$gt':'20'}})
6 g  E: Z9 M( @% x$ }9 V
& U$ i2 U# \5 w( j
9 O- g+ a3 P# C0 `7 `& T, d
# d* W. s+ R. h) b: x% g4 H( o+ h$lt    <   (less  than )
5 f& T9 j- z$ c, q& v
# f, A7 X( }& F' @6 b6 K. F( {) s$lte    <=  (less than  or equal to )/ _  x0 d! w) [) i+ t$ Z
8 k6 \4 r) Z( U5 {0 G
$gt   >    (greater  than )
- D' E5 `; s, A6 |
7 ^8 z2 @  W0 K4 E7 t5 y$gte   >=    (greater  than or   equal to)
! M7 p6 ?/ S. @" t0 O6 G# r3 a0 D* H8 c; r. w  b! i
游客,如果您要查看本帖隐藏内容请回复
- J1 G7 F6 f; e" N: N

: |: u; k, K9 j2 h8 _$ a5 W" n6 A  J$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
) S1 N/ [: t+ J* ~% @6 ^: |" a+ u3 ?! H
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
8 i' g2 M- o$ }  j% C% R8 f2 |6 V1 g! _* y/ K
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
. d; A4 f7 ^! E) n2 I
7 i& \- u! o; A) @$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
$ D9 V& j) R$ o2 ^9 ?% T, T% a2 Z/ F0 a* s
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在5 n& j+ d' R/ X0 B9 p
% ~; w' W( ?0 r5 r1 |
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
5 K0 o( g8 c+ Y
) p6 \) ~" v0 u: C" x0 n& X( |8 X9 t$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
4 z$ O! m" ~6 d+ r8 g; C; |! D3 ~# {! U. h6 k) G+ V0 G  g
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})7 _% w' l# L  C3 Y1 r; C
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);5 q. P# H6 K, R4 c* w6 R. [
  q: g2 ?- a, c+ B1 @0 C" w
$exists 键是否存在   {finaGoalLine:{'$exists':true}}9 Y+ X; h; \* V8 t

, k/ S& S7 d; D; Z+ B/ z( ~1 Q! k$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
6 p- \. D# }( I! x- t: W6 Z+ c" S
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
- t" N9 X. k! M9 ~" x$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 * w* K  i. p) P
/ W7 @1 T$ J! H$ K# r, U7 b

) I1 Q2 N' ~/ Y/ Q$ _
1 \6 S* o/ X& \
! Q! ]: D& ]8 }. a7 \- f: f  ^
4 H, K" O4 w& m; }* _4 N

' T4 \/ Q5 u/ ~9 O$ a; D: Y8 I7 B7 t- u  W# q: D/ S
; Q0 S! Z  X( r- ]$ D
组合使用方法如下:- h$ }/ c0 F5 p$ p

& b# a5 `9 t/ [7 D- ]0 q! ydb.user.find({"age":{"$gte":18,"$lte":25}})- T" s: \& V5 A% f0 d" e( |, D
# `7 W$ Z$ ~0 t% A' A3 i

  c) {- M" q  Z. \+ Q
) Y2 e- L) s/ y% I0 @2 O  }/ Z对于日期的条件查询方法:
/ M5 o, Y8 L; V. q/ g4 U( V
3 n! L/ ]3 o5 N+ K% r6 D4 u" jdb.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})3 ?- m4 u8 e1 C% t
: X/ n1 e) n( E. g, E
8 g% ~; Q* W7 j) _8 h- o2 O! C

: J# t) I% h# s/ `. R2 `2) 不等于 $ne- m' v$ E9 s* N* l2 d
, E2 w4 X. t1 F1 z: l8 J: m3 [% T+ ]
例子:* z$ J; T/ J4 U' `. L; _
0 Z' Y+ ^7 B6 [) ^! ^, F* p
db.taobao.find( { age: { $ne : 10} } );$ A& R2 _/ y4 I0 w, L
php7 查询mongodb方法大全$ J+ B6 Z0 v5 q: x
游客,如果您要查看本帖隐藏内容请回复
* `, `8 r9 }2 R/ _

( k7 c5 [# b# |/ Z
3 _3 d4 N& v5 g- F" Y$ D
6 U8 N: f8 O0 N8 e" g' d  l% X9 K" g; o/ Z. N% \0 f

/ p  n8 u% z2 h6 u
; L5 i1 P2 O5 D3 }" Q6 p; G& n0 c8 b; ]% I  f$ d% O
: F( C. K! i- L) E& |
" w7 Z% f- D; ?) ^) @0 I% e
$ {2 `. `1 \" p3 O. @* k5 M$ [( z
# l3 v0 [! ]; ]( c6 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or. ^; s0 R! Q* X
  1. //and: v: w$ Y+ }8 \/ j! e
  2. {key1:value1, key2:value2}
    7 I" a- U. f, k; X6 P
  3. [key1=>value1, key2=>value2]
    ! F% c; _' D) C( @) T5 m3 P
  4. //or
复制代码
$ K: h. r$ W; q& e
5 C! M7 t. o9 X
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-9-22 04:12 , Processed in 0.053259 second(s), 18 queries .

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