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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
# g; w4 q( U9 Q1 _) `
# @1 l0 [; s4 q+ N9 j' }" hdb.getCollection('student').find({'age':{'$gt':'20'}})
( ?' ?' R2 e) R, {8 h, n# L) c$ ?! X; R; E+ ^! Z5 D* |+ J
2 h+ i% E% `. i! r. _

( ^" h- g" I/ w1 W$lt    <   (less  than )
& w  a8 n) J. H- B* M; |
# {$ o4 p- V; q. `! S$lte    <=  (less than  or equal to )0 ?* i* H2 j* ]! `

# b+ r" q' x" }+ i$gt   >    (greater  than )9 J5 f+ V5 ?7 Q# D
9 {! G( {' }& P) I6 w( t/ v8 U
$gte   >=    (greater  than or   equal to)( p# {# W- ?4 ^1 b9 t; J* B% ?* e
% u- w" i" ~! r  u+ @
游客,如果您要查看本帖隐藏内容请回复

, V5 X! z, a7 G& ]% b) e9 R! G: Z3 s% }
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}( _) ~2 B+ F+ I+ |& u) ~
  \9 }4 r! C% G  V) r/ K! ]
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list* q% ]  Q' o5 f/ v( i8 v

+ Z+ ?1 Q1 w6 w$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
2 k* q/ ]1 e( I* C6 g* s5 c  r! O8 L! }% D( z% R+ M$ R$ a
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字4 T! }7 f# g) \" ^; G

0 J! D: s/ l7 l, @6 A6 T$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
  l" F, l' o4 F& X' r9 q% W& C8 _8 q
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
5 z7 K+ p0 A7 ^: x3 ~: ^( V
" \' M& V  x' {. h2 x$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
1 G5 y& U- b1 n' h" j4 e
4 x$ j1 R" ~! `8 ^3 z# B) Z" ?) i$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})) l9 g4 f& O8 I$ H: R: w: Q
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
- T7 |1 A" \0 R
! F; X( R1 q4 u3 E$exists 键是否存在   {finaGoalLine:{'$exists':true}}
: H, v- t$ V+ N! r( v3 Z4 \8 ^/ i' I* N! M# x2 w
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]" u5 ]8 w$ C) E' V

; I& W5 ~) J& Z7 r7 X$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],/ E. k, i2 k% J
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
5 r7 Y- E; X, B" c4 k( v' I9 j+ h# K0 ]) H5 r' d" E
+ z) ^0 g3 |5 R( U

" ?4 R- P% E9 Y! e

5 }% Y6 D, F7 i5 H# I: y  s8 M! m  E6 Z
% I0 P9 p! d3 q' d2 q
2 l7 R, q# e! x, q; K* q* ]- t

% A* I- z& }* Z组合使用方法如下:
( P& y9 M( b1 q/ b
5 B1 s. U3 N+ z. k. T9 q. @/ g4 @db.user.find({"age":{"$gte":18,"$lte":25}})
: X, C4 z4 {$ R6 U5 h' d! C7 n; K! F. ]* i4 K/ @
5 y% F& V; `% d: H
0 z. n" N/ J  h3 x1 ^* F. H+ ^
对于日期的条件查询方法:
( R; B$ N( g3 h, h
; A! `* ?, \* J( k& k5 @db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})* j7 |7 t* O6 z- K5 J8 n! Y

* u7 l2 B0 [" o% I, z# s
  x0 a1 {: R0 z+ c# q$ f
% _* N7 n, ^! f+ {1 `2) 不等于 $ne' }  O3 y, a5 f3 k9 v8 {- E0 W

' `# q, j5 ~( w7 q8 W6 S% b. H例子:
  E  F( T/ s- J% Q( u4 i
* k8 [  p+ D' F5 I1 U1 e4 [0 s# odb.taobao.find( { age: { $ne : 10} } );
" _- L& w  w- u5 ^php7 查询mongodb方法大全
; I+ [5 E- }/ W  @5 c4 l/ B7 v) [) r9 G
游客,如果您要查看本帖隐藏内容请回复
. x4 F$ C& W: z& }
6 @( b& Y! e3 g2 S' I: w
" e1 I" g+ a/ G* e

. V# `# f2 S# T5 H3 q  G% F  g0 _+ c7 t  q* M3 @

1 L+ [: U- D9 d' E7 v# c5 i6 d* z: `0 ]  Z

' e$ e' t, e- Y+ L9 s: m$ |
( ?  d4 h+ s/ G6 u9 M% B
0 `+ `' x7 M1 U
7 n0 A3 T, U' S1 O! U& m; G; @2 w# ~. d' R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or9 S9 S& _& Y, L( M5 X8 m7 M1 @; K
  1. //and
    0 O' s, C- }* V" o
  2. {key1:value1, key2:value2}* I0 V( p5 J$ G9 p0 J; w
  3. [key1=>value1, key2=>value2]/ c5 n$ {. k& ?" H  ^6 M: c
  4. //or
复制代码
, [" K, @+ w" C

' }* X' N! y- h- E( Q
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-8-4 11:47 , Processed in 0.083791 second(s), 19 queries .

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