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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
) L  r/ s1 [( w4 Y) \+ b) k+ u3 \
& o$ k, b' u6 c, X5 Q) A1 z1 idb.getCollection('student').find({'age':{'$gt':'20'}})
+ B' V' A# a& _1 `1 [# c
$ e. Z; x+ O9 u& s# x6 Y' F1 Q6 Q4 S, M

3 |9 @2 ~  \9 l( l$lt    <   (less  than )
. J2 Q8 r3 o. M: Q0 Y! t9 @  j/ O
& Y( f: Q7 \" ]% f% V$lte    <=  (less than  or equal to )
- ~+ N, s' Z, A% E0 V
4 i" f* s) Z* {$gt   >    (greater  than )
/ Z# U( p) [! \; O% Y0 ?0 g" q3 n/ u9 |3 O; G* I9 x5 O
$gte   >=    (greater  than or   equal to)& \& A, y4 B: F7 @

* G; c8 Y, `3 _+ x6 x# b
游客,如果您要查看本帖隐藏内容请回复
3 d; a% B. v% M5 K

" w4 V( `4 _4 S  g- w& x7 w- s% ?# u  W$ne  != (not equal to)不等于  {'age': {'$ne': 20}}2 V  [- k) ]; R% M$ B, a- E& f
7 U: Z' P9 h. q" f' _6 {! F
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list7 }$ @/ a- p8 e9 r: g
+ F& i' |: a$ K9 H
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
6 [" J$ H( H4 F( ?6 o
9 p' a8 Q2 b+ k4 b/ C* F$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字& y9 L3 O4 {/ H7 h. w# B* U

( a4 z5 [- Y$ g$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在' e8 v& ^$ l1 R* Z/ h

" [0 v- H6 a6 F9 N% e3 j& ]' d$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
6 t4 o( A' g  ~8 E- b1 U' m
! }0 ?- \( D; ]% r) j$ \- L9 |+ |$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
. M' n4 {9 s& I
+ ^* t6 w* B, Q5 ^7 w$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})3 u+ T1 C: G: U" n0 u
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
3 f" ~+ j+ a2 Z
5 w0 }7 N  L, k) Q: Y( j+ a- ^6 c$exists 键是否存在   {finaGoalLine:{'$exists':true}}, J; F9 P3 g9 `
  W- S* b! G! H- I  F
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
9 u, ~# o* h6 P! `+ ]7 I5 `1 r6 K4 |; F- Q7 x- a+ T9 F
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
" O, `1 b' @" @( U$ u$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 $ T/ C8 a1 Y. D7 H

! h: |; f5 H. e4 ?

5 G; A  y1 Y6 e5 W$ w+ I! v
0 M9 p# H& G9 \
3 {' R3 i  b# o- l/ _: D

( \6 x& {( q: R. G) t' D
* X, a- h1 q/ }  N

- H6 Q/ _6 [; I& m6 {3 e" e9 L& j4 G
5 G- H$ L. p2 Q& C8 B" I组合使用方法如下:
0 g9 s" G- \* p; U( o5 {4 N  ^- T3 C, X0 _+ W& y6 A6 i/ t
db.user.find({"age":{"$gte":18,"$lte":25}})
7 J: O( I( S5 X. a0 {# U6 ]8 N8 o4 q: j) x8 i/ Y6 L

; X. e+ ~/ M( t( s) ~# X1 v# I6 @) ]) c& c  f
对于日期的条件查询方法:) k$ C" n2 q) p: d! @

- C! _+ r: D9 D% K# `db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})' ?: E- t' A) u7 o
/ y  i: F! `( p1 a0 ]5 J! F
4 ~- `4 z0 f4 W* _& h# D

6 N2 n# _, W5 M2) 不等于 $ne
& h3 o$ ^  l4 f6 f  e4 _) @6 a" K, {( S0 R0 n) ^
例子:4 x2 I; ^. i- K% ~; ?' z( K" V

6 \' Y$ a2 T( vdb.taobao.find( { age: { $ne : 10} } );
$ k+ t; I* {- e6 D0 Vphp7 查询mongodb方法大全
4 I% {  c1 m5 ~( O( R4 \
游客,如果您要查看本帖隐藏内容请回复

8 Z0 `" E8 ]* [, i6 S/ d6 G* y

3 r+ x/ \9 a! R' u2 B4 C
- J7 e/ W; q3 K* K2 w5 |! ?/ j; A" ]+ t0 T. u

6 Q  `- r, l/ j3 A) I4 A0 L6 Z; g* ]  f. r6 J# @8 j- Z' j

) e: S+ x  W1 E1 s( y
5 W% Z9 N0 J6 i5 t' `7 A9 z; _6 X8 F% p7 c( g2 R, a; e

3 {0 h$ @& |8 v4 v4 S. f
8 ]2 G. M: K$ _" y) X9 |( c" z- i9 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or% f& s% b! Q/ I3 Y* u. _/ b# j
  1. //and
    - o8 E& D: \5 u' N4 X7 b4 ?) S
  2. {key1:value1, key2:value2}+ Y5 q: s* C$ I9 X6 \
  3. [key1=>value1, key2=>value2]
    , Y/ r: o# Q' Z6 {' w
  4. //or
复制代码

* Y& [) i( x5 P1 v: \- R: S8 A$ w( j( o/ d4 b; n
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-3-16 18:41 , Processed in 0.054593 second(s), 18 queries .

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