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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
' F. |5 c5 S3 ?8 l! z$ N( U# d4 I1 F
( K3 S& o) B6 v7 O# z0 i7 mdb.getCollection('student').find({'age':{'$gt':'20'}})
/ M. b- W- @) T( g9 a+ Y; ~2 U! _& U5 o7 H7 f) m
- V6 R0 F, K) w  e0 [. j6 q
) K5 a9 Y( C0 F( `  n4 v' P( F
$lt    <   (less  than ): Y+ o+ J5 m3 e$ P+ R5 }  t6 e
3 W( g6 L/ r$ ]; m2 l  O" f7 k9 i" A. V
$lte    <=  (less than  or equal to )  e# P: v  U# o9 U
" n6 P5 O  T  ^6 L: Y, g( g
$gt   >    (greater  than )
" V, n8 C0 q4 p8 u4 U
5 y: G, Q- ^2 f' x$gte   >=    (greater  than or   equal to)
5 q& ^* \5 c5 j1 P( Y% Q* l5 _) s& g% g' s' {) v7 i* i( Y- D5 n
游客,如果您要查看本帖隐藏内容请回复

. i9 \+ B5 w8 Z# N4 m8 b5 [( _- W
  z& [- L7 q, |: Q; b: T) J$ne  != (not equal to)不等于  {'age': {'$ne': 20}}, [. ^& r) p: g
6 @3 N0 P7 B, f6 M6 B7 w1 F
$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
9 [  M0 R. B8 r* {$ J- |
+ C/ e2 S" {) S+ A* N1 |$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list9 z4 Q# E3 \+ \/ [% h- \

# w* U: I1 S; J% G" ?$ Q! L; `$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字" C# b$ d% g0 ~1 R4 b( O3 e. D

' I% C3 Y1 ]3 c  Z/ _4 F% i* M$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在$ t9 e: \7 l: X( P

( [. R7 R& U$ n! u$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
/ I  p" m# L: M5 D4 l
7 [: I) m5 Q$ Q5 O: D' R- t4 @9 W$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
1 S4 T3 U# _, u' m2 i
. V# j- r" N# o$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})  ^; O7 l. e- r3 V
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);8 h0 X- O: n! m. D0 @7 O8 V- r
6 C& f3 I5 p. L; M6 H) w! c& \
$exists 键是否存在   {finaGoalLine:{'$exists':true}}8 g1 t. x" G9 R: z6 v

+ X4 L1 R. ^8 G* E  t$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]* x' \* O7 }( l* K& R3 G

$ d2 `, M7 B7 G' q$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],% `: I2 ]. |# S1 N' Z
$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 9 ~, F1 f) Y7 t) a6 h
& D5 Y9 E- ^' \5 x

1 d' Z) A1 _2 Q( R3 R  F, ^5 q3 i: A1 P

; p$ @7 c! v& l( K5 ?9 J- x
0 x) i$ o, [. y1 V* h$ d

3 v: \, z/ _4 X4 r; m- n
5 K5 H' w  h7 H7 ^
% f. r; v; l/ c4 r6 Y3 ]组合使用方法如下:3 i; Z. I3 g) V3 m6 w! D. P+ b

, q5 i) F: |$ ?db.user.find({"age":{"$gte":18,"$lte":25}})
" N# Y: t; H6 @  o/ z0 @% N# d3 L4 a' `

0 ]0 i  d0 X" {3 e9 Y4 G0 K* s: _6 R' j' J* _; n$ G
对于日期的条件查询方法:
5 z4 Y" a2 e! u1 a: D. }/ f( u: k; B5 H5 u% `- W7 E. l' F5 m1 q
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}}). i4 L8 U( C5 W" x: e! s
; l0 A' e" D9 V, S4 x* R7 w, |; A

$ s' |' I0 t( o5 z1 Y& b( U/ K* T$ h; {( _. \
2) 不等于 $ne
9 ?& M( m( Q, f& v. B9 w' S+ c; H7 h* t  I# A2 c
例子:
/ A) ?/ P4 K/ O: }' j1 Y7 t* ]+ Y+ S, J
db.taobao.find( { age: { $ne : 10} } );
/ T8 m0 n; w9 G7 k5 Nphp7 查询mongodb方法大全& ^5 A$ |) w6 {$ H8 Q( \4 g: z8 s
游客,如果您要查看本帖隐藏内容请回复

  W, M( Y$ j( w& o  ^2 h+ y- @- i+ S: o
+ a: o0 r1 m+ {) Z8 G

% V, H; V  N/ s9 `6 F8 q  J4 v: D1 C3 g2 h5 }) u" n  Y
, C3 t# X7 w6 z) \

7 p5 I( _2 w; s2 ]& m# ]
  s0 u  v5 L/ h; K' w# h1 B. b2 c2 `. H6 o- I9 |4 I
3 a/ }9 j* N" t% y) H
3 ?, T4 W& z, Q: U3 {- j9 `+ v
# m+ {" b2 A4 @' q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or1 w* A6 p7 M1 E0 X( O' e) Z
  1. //and/ ^3 m7 a" V0 h9 G. T* R
  2. {key1:value1, key2:value2}7 s. U: N( V; j+ @0 T
  3. [key1=>value1, key2=>value2]
    3 N( i- D! y5 S4 T. z
  4. //or
复制代码
4 Z3 A9 d: ?% b  I9 R
; [) p- r: G9 Q3 T; B
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2026-4-30 20:51 , Processed in 0.071863 second(s), 19 queries .

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