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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
3 X; i# f7 v! O* J) S* i5 y# o9 H/ p% ~# g( {3 P- Z# V) n7 |* v
db.getCollection('student').find({'age':{'$gt':'20'}})# t8 w" m5 y* d! G7 v8 T& e
2 L; L3 f5 q; s9 f

" ~0 F6 q: ~; Y: }# \+ H% f6 U
/ n1 ^" V9 D" V; d8 }7 _, j! M$lt    <   (less  than )
7 I3 S. i6 [3 Y  y+ X) l6 T# [3 d$ v& O! s
$lte    <=  (less than  or equal to )
& q  r6 h! ]- K  H- f2 {: h
1 N# h" g1 j& w$gt   >    (greater  than )3 F* r3 y4 w: J
  |' ~/ X# Z. _1 `+ }) Q8 I
$gte   >=    (greater  than or   equal to)
! K$ j& X) y; M# ~& {7 X! r
+ K) X7 n% n7 V, F2 R* p5 m
游客,如果您要查看本帖隐藏内容请回复

0 W+ i1 z- C# q; ^, a+ M  H
4 G( k0 y- A: b  e' _; @$ne  != (not equal to)不等于  {'age': {'$ne': 20}}
4 q# u& ?& K, n4 d0 k+ B- ~/ `* y6 ]5 l" I/ g( Q1 B, M
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list; y) }: @. X5 }, t% v) x

4 c" t7 I4 A) a# X- ?4 a* g1 r$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list# `6 j, b3 ]. e  S0 X
& G* A, i, Z, o  u0 U8 `  f
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字: u( h2 c% ]& q

& }0 q- S/ t" H5 I' l5 s# e$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在# G, N! R" Z6 t9 G
; W: }8 f: o. ?) o* R0 r
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
+ {4 i7 {& D* |: }# R
( x% R! s$ D! T2 Y# j) n2 |' Z$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
% p% g# A+ \+ Q$ f1 U* R9 b5 w; {2 w) f5 b# `3 \
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
% L; t: ~! P4 Y  n# Y; z) s$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);0 l! ~& D; l2 f% d: V9 t2 M
6 v- w( d* Q! i; d6 o9 g
$exists 键是否存在   {finaGoalLine:{'$exists':true}}9 y: K6 Q5 @, g/ O6 b
: j/ _( p7 u+ n1 _
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
+ O/ V8 k9 w# S# d' s/ A
( C  e( x1 e) v$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
$ s' ~- Q  O# a# F. e0 H; z$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 8 R& P! X" U: ]" v
3 x  r( h) b6 g7 x+ W3 l" i; y# M

, i( t6 m  y! `
6 Q8 U" l1 W& K' _. V+ j7 n: P
# @  I8 N% g7 }$ \- k/ g

; O( B& l0 v! S' X
( w8 j3 }3 k' ~
0 o0 K6 ~; z0 I" e: k

: U: E4 S, y2 J% R0 l% R组合使用方法如下:( e# z: J( ?" @  B
$ I- ]1 t" j* S+ X5 Y$ ]; N4 o
db.user.find({"age":{"$gte":18,"$lte":25}})
; {' ~2 |8 V/ t" t) ?& m
4 u0 h9 i$ B4 [' N* w" w- b1 ^( T/ g* n* Z4 I
! u( g0 ~2 {# R8 i/ B0 Q# V  G- a
对于日期的条件查询方法:
- F; ^! V7 s. Z+ [" _4 X% W9 L$ Z- L
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
- ?4 F2 V/ ~' p9 J, y# i, g9 z5 {! O; M; C- Q5 \5 B# T! w* X7 H- @

0 S6 s. H& ]# {, N
/ G- \$ u% p7 s; E4 n6 U0 w3 G2) 不等于 $ne
, C$ ]3 h3 G, T1 G  k, `* i7 v: ~- z( U5 `' ]3 h3 G/ m) b& K. [( l
例子:! o4 q" ~& K" u: i: i4 ?

* T) s4 ?7 r/ Xdb.taobao.find( { age: { $ne : 10} } );
% t3 Y4 M( s- C' gphp7 查询mongodb方法大全( G% j7 [, s8 E. W% K
游客,如果您要查看本帖隐藏内容请回复

6 j$ N$ P1 j" j8 v
/ Q1 X+ J- q. N8 c( b# N5 Q! E7 Q& L$ e7 X$ t" d* Y
% P$ W. c6 y& P; H0 `. X; f
/ v% g  `# Q6 e4 \: C/ l" D

3 e8 b0 S7 @9 t! o" C3 A% p0 R) C0 t/ |3 u: B, ?

' k. k- C+ B- t/ _, V: D8 j- z! ?0 N
& D! M# S2 R0 D
& a/ Z" w- ^+ U$ C) N- A

. |; R, F8 T4 G! G) k& G: w3 D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
7 ]2 l  s1 K' g/ Z5 F! v
  1. //and; |* D6 d7 j4 [" W: C5 ^
  2. {key1:value1, key2:value2}
    " Z$ }1 q2 D  Q! Y' A& C* a
  3. [key1=>value1, key2=>value2]7 n; m: G. r5 F8 l. v9 T" C) j
  4. //or
复制代码

# x& J% ~( {( R0 K" ~
. N+ ~6 }- x9 ?, @  R) I
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-1-30 14:42 , Processed in 0.057277 second(s), 18 queries .

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