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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:" Z; Q9 J0 \6 a7 @* B5 G/ f
& Q/ q8 f3 U% ~& c' s
db.getCollection('student').find({'age':{'$gt':'20'}})% z: u6 n) T6 x/ F' o

7 |7 p3 }$ q2 i7 ?1 K+ w
2 j& K+ H& R( W& B% e
6 U( I& H' H& V2 V: O" u/ ~/ w$lt    <   (less  than )  W' T, E; r" [; s3 g1 z( j9 T% R! N% d

* O( p3 n* h8 S7 G9 N% W% }# D$lte    <=  (less than  or equal to )
" M) g6 P+ n7 m
+ k4 p. E2 J! k) t1 m5 ^: F( F, g$gt   >    (greater  than )
; c/ x5 Y  U0 K. P- k& U
$ p$ G7 g: m4 G, T. \8 S$gte   >=    (greater  than or   equal to)
  E) |0 \! x9 B, Y. ^5 t" T5 h7 _- D; e$ U2 b  w6 v* Y( [0 s
游客,如果您要查看本帖隐藏内容请回复
+ r( Q; `; A$ U' s" e& v
5 H9 ~+ L) r0 u5 U$ _. r: K
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}; f6 z. d6 D, o1 m) l* |: n6 G: ~

6 u* A3 N5 u; v$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
# P% p& s* |3 \& R1 q6 M9 x( }3 `& j" N- ^+ g' b, i( j
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
) L) q% O( }% N3 c$ A5 I! J" t4 F1 l
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字
: T0 {% X& i" L8 ]9 i1 o$ Y3 H6 _  z1 H% ~6 ~$ j1 n. L' b
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在+ l3 @0 ]" y+ f! t/ x* l

, @) u. ^3 w1 J: y9 P! J$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int5 H9 j( z% R7 b: C
; V9 E$ g  l8 h8 J
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串
+ F6 W- }& h5 d% ^6 g4 |6 z& N! O# X/ y+ a# O( _; w. U! ^' j
$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})0 i3 f- S+ d- Z
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);$ S  I& B; z! L- g' i0 v8 `0 V
" Z- Y! ^; B( a( A# B
$exists 键是否存在   {finaGoalLine:{'$exists':true}}4 u: i9 B. u  l: J! f
; H, a1 f; t5 ^* x1 E3 E
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]2 ^' s- a; J3 o9 s
5 H2 s- V/ |1 e. o  Y2 t3 b9 _0 `+ G
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
! t1 q) f  s' P8 c0 X$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3   }6 Z- M. v& H

8 ~9 o- u' x$ _

& s- b: l9 j! d9 P: S
1 f- {5 H# F5 Q) Q& w
) |: j8 j5 W. S) n# C
8 A3 c, k. c: Q3 o( [; S

6 m% m+ ~; Z! u2 W# N
7 X/ F8 h  \- r
, ^2 Q7 `, l; a0 g+ w4 G- m组合使用方法如下:
) S( L, U& c0 s% _2 ~
4 C3 a: M9 B, K* I, \7 sdb.user.find({"age":{"$gte":18,"$lte":25}})2 H" j8 j. Y5 a7 C& P- |
8 V) _, \! O" t5 I: F* f
% [: V# B. B1 {4 y0 A8 z
+ V7 }" _+ A3 \5 m' i' i
对于日期的条件查询方法:
8 c+ g. c& W$ Y8 U$ V0 f2 \% A) B6 S% @2 e, F, V5 a8 i* B. K+ c
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})4 G" A8 P3 o7 w' P( k5 Y

' b% d1 S$ i1 A+ s. Y' {5 K$ ^) t& ^+ S  a2 g. b3 k

6 B6 m$ X" e. t; F2) 不等于 $ne0 ^* U# t- y& C' w" L. h! F3 T
$ F3 _% t3 X9 j0 f- E
例子:
" n7 ]6 u' j7 w: s8 J% S0 p# @( R2 Z& ^7 f+ [1 i) k7 y( P
db.taobao.find( { age: { $ne : 10} } );
, C$ F$ ~$ M, E; B; }; P8 Q1 [1 D( L' bphp7 查询mongodb方法大全% P8 r6 D6 z5 y
游客,如果您要查看本帖隐藏内容请回复
& y2 v4 v' ^+ p) V/ v3 {' n

3 F3 a/ N! Q7 n
- @, \4 C3 H# `5 M5 j% [5 ]. l; v0 E
8 Q$ ?5 t1 [% X4 s- E! p5 V' I* O4 q) Z
4 a9 f8 y1 P9 S  {

: |7 ]7 `8 R$ c, k
, @; ~( ~/ i6 b2 r: p: w) H) T
- g1 V/ D+ r" z) D3 L/ T, Y# v) r7 u/ E5 T, X. Z
' L4 \4 k8 X' T& ~4 h! G

0 a* O( q$ D" a1 h! W1 }% D6 M% |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or# v% T$ b0 ^/ W
  1. //and: D$ Q4 G% e4 l, g& z
  2. {key1:value1, key2:value2}' ?( @, J, e% b: k5 d9 [
  3. [key1=>value1, key2=>value2]
    ; _9 ?( Y2 t  `. P! `; a
  4. //or
复制代码

! ?/ O  _4 C6 I  K* |' u: e
; k5 X7 G( K% D+ c6 f( h
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-5-17 20:24 , Processed in 0.128726 second(s), 18 queries .

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