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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-10 15:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查询表中学生年级大于20,如下:
" V: h" L8 ?) `! }$ \
$ j: ]% B% w0 v1 i4 n) _# p1 y& Ddb.getCollection('student').find({'age':{'$gt':'20'}})- O8 d3 W* F. T! |& v
$ `! m7 g+ h6 o

' f( K7 r. E6 ^* S* f5 E2 u( b! U
$lt    <   (less  than )
$ B# f' l0 X3 ^  {% g7 _  l5 W- o% F: U0 ^% q
$lte    <=  (less than  or equal to )" \1 Z- m. a2 |2 I2 i! R; f4 E0 w1 N

5 h* P0 T' ~- r& V. W$gt   >    (greater  than )' ]" @( A7 Q7 z4 x+ I, d0 o$ o* i

9 S  h2 n- O0 r! b  b8 X0 _6 [$gte   >=    (greater  than or   equal to)+ H6 ~9 c+ d2 W& Z
) x7 N. f; H) h; g+ e. `* x
游客,如果您要查看本帖隐藏内容请回复
3 s( Q8 g8 a" b+ Q5 u9 e0 Y
2 u1 a/ s. |$ ~: F% `, O9 i
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}. ^, [. D2 }% [$ g, E/ o

, \6 h+ }7 U! g% W# a* B: A( M6 i$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list  b& R7 z3 k1 L- \: {# f

1 ?: E6 V/ T9 B" k) g$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list9 Z4 X, B& L6 z% L6 @* L& m" D
) [0 B9 G3 w$ L7 v' X& x+ v
$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字6 h  m8 ]4 @. r6 I# n9 S
  U- f& {* J! g" @& }" |1 J5 {0 |* a
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在9 l! k8 K! E/ ?. \8 B* ^
: L% ^7 h& M7 K8 O5 L
$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int
( S- C( D1 B  i1 |4 H% j9 O1 h1 x4 [; T& V* p: i* k$ C& W: K$ B& o
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串/ a- X3 M+ @% k

+ P' B) U) Z6 V4 T$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})+ d# O; P; ~/ R3 P2 _
$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);4 m/ W" o  k0 c5 Z+ f+ G

2 _. e/ ]1 k+ F9 l$exists 键是否存在   {finaGoalLine:{'$exists':true}}
6 }- {+ F! F8 `( ]* p+ b
9 i8 Q  S- s" Y; O% S! x$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
4 O! K- q, n+ }# N1 t0 Z1 t$ q) H% p
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
3 C6 F2 r* d: E  A* z4 a, X$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3 + w3 e) e. \5 B1 M* k& v

- m/ z1 ~- k6 V6 [0 T+ z
* E" p# N3 {: ]. o
% `; t0 s& B! A1 ]
2 p4 D$ M4 K# ~/ \3 P- r

. D: Q9 \5 ]' y- n
# U. b  q, l+ ~: B0 Q
* Z4 ~# f" Q. f4 H1 ^1 P
$ y2 I8 @( s1 g
组合使用方法如下:. P  d& I" q, ]5 m3 C* B, _

5 O! H& Z, g& u, r- Ydb.user.find({"age":{"$gte":18,"$lte":25}})  k7 o3 m2 k  R) f% Q, e3 B
; m- f4 ]% e2 ]( U( J# [6 }: N

5 ~) C4 J$ s1 S8 Z% p. p. F$ v
1 W3 i; p9 F0 I6 H: v1 X% K对于日期的条件查询方法:
. I( x. X9 w5 |, \1 b: Q& X0 }5 @% G; r8 [: |0 ?
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})& F  u: m; x0 |4 z; {. O0 g

( W2 e) W4 h5 Z8 s/ _3 s/ y! e# R+ J  Y: x1 c

6 Q( x4 B" P4 t* O* n2) 不等于 $ne
' a1 y7 S7 I" ~; \2 [% G7 \# k) q3 m/ s9 h
例子:* s3 a' x! n4 s" c
& ?0 P3 |! W) F1 M, }! W) X
db.taobao.find( { age: { $ne : 10} } );6 a1 n& g8 ~. j3 W3 g( {
php7 查询mongodb方法大全  K  Y; x- u) s8 Z" n
游客,如果您要查看本帖隐藏内容请回复

6 A5 B) v0 w" Y9 c. K" g8 w
; Q$ s1 L2 F) H% o4 R  {# N5 H( r( K" x. i  J+ N
% m+ F! m; H4 d3 T) [  s: [9 {
. z% i3 ]: N4 F$ \2 V/ N7 K
, X9 F" ~  F4 I/ l9 h7 l* K

" f$ u) `4 l( x4 Q: B! ^3 i* j. m% v% [9 f

$ X- R0 V, \0 N5 {& f* S! E0 p5 T8 S

* k2 ]# ]# R5 C0 s# Y4 m' E
; U6 o9 `4 u9 y' w# f6 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2019-5-15 11:52:22 | 只看该作者
查询中的 and or
9 k) j0 R% y, O# V, T
  1. //and
    / t4 X$ {/ [2 F2 k5 @; Y
  2. {key1:value1, key2:value2}3 f5 @7 ?0 N& {& v. ~% _
  3. [key1=>value1, key2=>value2]
    / X. f6 u  O& N% X
  4. //or
复制代码

# C, D( [$ l; A4 ]1 `* l2 }' y* C, q& w4 q9 `
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

GMT+8, 2024-12-22 17:19 , Processed in 0.140322 second(s), 19 queries .

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