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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:+ ^  q5 `7 Q) c- g1 ^* s8 P9 H

7 d2 S2 m3 K2 u+ @3 f, Edb.getCollection('student').find({'age':{'$gt':'20'}})6 C0 s( f8 `4 _" Y3 H

+ w$ ]' j$ B( M4 V! y# D' [, `
8 M" P7 |# \( Y& Z6 d* J9 v
$lt    <   (less  than )2 h( L4 K- S- U2 e+ Z0 R3 @/ _
1 U" v8 U) O0 c& d5 V
$lte    <=  (less than  or equal to )
  A& W- {: J+ e3 n9 W. ]+ \' `3 P/ o- ~! n; O! Q; E- K
$gt   >    (greater  than )6 T$ @$ g8 }0 s
6 N9 t5 ^9 ^) V0 s+ W& m& C2 ?" }
$gte   >=    (greater  than or   equal to)7 v! i! {  {: J2 }8 p6 _& P% z4 `
* h* s* l3 L) I; x0 y1 s
游客,如果您要查看本帖隐藏内容请回复

% ]; m6 d) k1 S$ u7 r8 c5 l' ^5 d6 A5 K& H
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}/ e7 Z: M+ O3 B* f1 X7 `

/ `( F( H) l8 |4 S/ W$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
6 w0 y6 [# r) H1 i3 d/ c; a8 c+ k2 F# B# I2 c
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
0 B, n' c6 L/ x9 `; ~
/ F8 t6 D  j  a$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
2 y/ N1 o& Y2 Z& c  I, a) t; K# h  ^
  K/ G* b' B1 B: V- \( g; i0 j$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在
4 v/ X2 P8 s9 Z) D6 q( [' }* @% O8 w+ I, ?
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int8 m' W7 |5 n2 I: o( p9 D4 a
: k( x: ?6 I* T) Y5 a, U5 R1 s
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串. \! E' i( K7 Y

. o% o  H$ z. X) v- O! U) B$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
6 o6 n* ~5 }: P& k8 g/ W9 D$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);3 h& e9 R7 z/ `, D" O+ _3 M
& R" `( l7 ?% x1 w
$exists 键是否存在   {finaGoalLine:{'$exists':true}}* T6 }+ k, x# G- ]
! F& C3 L( H  o7 T6 d
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
4 `$ J% e1 V3 `0 I0 U0 A1 m( ^  L$ h) l$ _, r
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
1 ?- l9 t0 x5 C. b" ?$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
3 j! D3 u- q; w* }9 e1 s- Z+ ~% V9 N5 S& Z" X+ }

& q' f3 b* u' a
  v( K. h+ n! t0 n; @

* s1 e2 [' N* n8 {& H" W
) }0 Z( B8 U+ G) u2 X6 g
9 Q4 F$ `2 z+ u, t: H

" R+ m; N5 G$ f- @* q4 Z' `1 }' n5 G7 y: d  M
组合使用方法如下:# u5 c& P* M5 [" {8 J8 f2 n
9 p0 J; }! {' ]* A" b
db.user.find({"age":{"$gte":18,"$lte":25}})
0 G3 W0 q: y/ l; d  J/ U* ~
, L5 a4 Y: b. a8 T- e4 B
. I% z$ o3 e1 Z# m0 L6 }9 E! r) E# _' _6 l& \
对于日期的条件查询方法:( T  H) b, j4 T' v
& {) I( K; d4 H/ ?2 g. H
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})5 M. U1 {, U" E* T

* v9 K. b. G  X
4 P3 j8 U8 L+ T
* F" }) n( m, K1 o8 Y2) 不等于 $ne
& u# a; R. l3 W/ C, |! Y5 v6 [6 j) }* h! Y* f1 L
例子:% M' D, C' @; _) j9 _- W

5 O; X$ o: V. f( ]% Udb.taobao.find( { age: { $ne : 10} } );- Y$ F% k  g5 M& z3 l  z; o. ]4 f
php7 查询mongodb方法大全
9 x0 q. m% [  d9 M
游客,如果您要查看本帖隐藏内容请回复
; u9 [) E* Q4 I% m
& N0 j, X" _. O, `* v6 V

8 R# R3 q" k  n0 T, a4 m7 l* A& e5 {6 @5 }6 q

# G) _4 Q$ d* Q" i: g2 u3 q
$ Q$ ^, J+ w4 \7 G$ h9 s" M
0 M3 c& b  |+ Q, T$ f, i7 [
/ \; N3 r. m9 g' a: H& P6 E" W' j3 P9 w$ }' {4 T: z' s: i) U

' B, ]$ C4 Z! v9 i: \0 j! I1 y
+ F( ?% ^; z# r
7 W1 G8 X& [* t; d- V' {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
0 ?' g7 `/ q% f  v4 e' ?
  1. //and
    ' K2 N: w7 Y$ G5 A! @
  2. {key1:value1, key2:value2}
    ( |1 Z6 K( S+ ?/ `, E  _
  3. [key1=>value1, key2=>value2]" [+ p7 n$ X" b' I  q! _' z
  4. //or
复制代码
" K1 E' n& h# X, D  R: ~

% H! d) U  z' U8 `  ~
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 17:20 , Processed in 0.066976 second(s), 18 queries .

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