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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
- s$ p& T4 M( D, \2 E/ w, m
' H2 _  Q( |5 w% Z; adb.getCollection('student').find({'age':{'$gt':'20'}})
7 r6 o* w! o- ~
& ~% i, T. O) K+ O  y! p: r) K* v1 z
; m- l: Y1 P( R4 l+ R( V7 ^" D% d# S/ E" A9 Z, }7 y" l
$lt    <   (less  than )
! P- Y  s: c7 ~3 h: t* O- \
. y# \# k! Q3 Q$lte    <=  (less than  or equal to )
+ e: J  f5 P) Q' J7 S3 d2 a
  u: c2 c6 |# U' ]  _$gt   >    (greater  than )4 f9 a+ P& D  c% ^

! A2 U$ d* d7 `/ g: R  l$gte   >=    (greater  than or   equal to)/ p: a+ t8 `) h; \

: y4 n% X( ~% K
游客,如果您要查看本帖隐藏内容请回复

7 p: b( d8 a- Y/ S# H9 R
5 B; b4 w9 U" S! e6 i$ne  != (not equal to)不等于  {'age': {'$ne': 20}}4 E& Q2 R+ @) R3 C" A. D

2 @5 C7 O! m2 h$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
2 R: \1 D# I: \6 r4 I- |6 g* B
( g4 M2 x$ F& p; \2 R$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
$ I4 Q# H2 y" K* [3 D; h) H# S; P! m6 b( h% o! g
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
" j& {# C4 F- I% N
) `+ L' r9 h" r$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在# {' @6 S% }6 x
+ d% G# E/ i: z% @) |
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
& e* e. S8 c2 n; |1 J+ H% _$ M, G4 A4 M2 V2 t1 o% y4 g
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
5 t1 h) ]! J% _8 ?4 M8 j& a2 ~: t+ t' G4 s/ f6 M
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
7 G# \+ T4 s# h  K$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
- O/ a3 a  x1 m4 R) F1 w8 ]; Z/ v& t* I' R1 O# t! E6 U$ ]+ \
$exists 键是否存在   {finaGoalLine:{'$exists':true}}# A  y% b& F( o' m* F" n8 V

4 q: |# `1 ~) {9 W8 F1 Y4 I: \$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
* s4 n$ ]  e7 Y+ x6 t( g* c4 E  S& T$ K6 ^. D
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
' f3 b' R  x  f$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 1 ^) t( m6 d8 c, i9 X$ V1 {

* d( @; `! ?8 L

( ~& L8 i6 g: O# i: N- f& x+ `4 K, ?
/ K, t( \6 @6 P2 G
( B- \, \  j! W; R2 b: O' U$ n
/ Y# s* I# ~# e' V, W0 e5 F. |
& I$ K. o2 n" f% ?# k) L  }6 |

  q) N8 i5 ^) \, L& G组合使用方法如下:2 B. `% B. w$ @9 B$ c% m' s

2 P2 W8 ^2 O8 v; |0 Zdb.user.find({"age":{"$gte":18,"$lte":25}})
% U4 C8 n6 Y( k
) H+ G! W& V! t" z1 u" u/ S5 p: [* r( F7 N

( p2 N  B0 i5 U: Z: _1 x对于日期的条件查询方法:
4 ]. `) _! t, F2 K: Q7 b
2 m' @6 n0 m! w/ u- m3 ^db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
$ ]1 [5 c% \5 H' f: k5 w: t
! n# Q- r' }( p  W' s  J& E
0 C4 e# k$ T  F* P7 j$ l9 g$ A$ j
2) 不等于 $ne
9 Y* j% k7 z0 A- Q' Q
/ L8 B0 H2 B# Q3 [例子:
1 v2 t! j9 G  B9 j
' [. K1 t2 U" ^! `  s# U6 Pdb.taobao.find( { age: { $ne : 10} } );
% p0 B1 ~9 w0 a2 S6 H+ ]' M  Tphp7 查询mongodb方法大全
2 k* d' p2 `6 l$ i8 ?& N( l
游客,如果您要查看本帖隐藏内容请回复

0 c* F# y# v+ a+ ]+ W
& |) K0 I2 Z  D4 e& |6 M0 n" E# z
, a7 X6 |% Y" v4 Y% M" C/ b- m* ^- u& U) Y7 e, F5 n

' ]& w2 I+ f. [/ t4 ~$ b
, W, y3 U$ f3 y$ i
% u* ?, R- _& z7 b! |0 |. w, {. y7 H1 k: i( ?) D
2 _: b' r5 o& t- ]8 W

! i) ~; N; O$ U! Z/ S" W# _7 [
# g/ ~' X- S. s* B5 j
7 X, u) X7 j  v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or6 c# D; Z0 p- g, U$ Z4 m' a  H3 L
  1. //and; y% Y- ]4 R0 ~# P) U
  2. {key1:value1, key2:value2}. m+ f. d* r+ z4 E4 s
  3. [key1=>value1, key2=>value2]
    6 A- R( P/ f8 Q% A0 s
  4. //or
复制代码

9 r0 t1 }( I5 K0 V9 U
' w8 m) }( p7 a
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-6-20 05:38 , Processed in 0.052598 second(s), 18 queries .

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