cncml手绘网

标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于... [打印本页]

作者: admin    时间: 2019-5-10 15:00
标题: mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于...
查询表中学生年级大于20,如下:) d. c$ @% S. c- ?& p4 c( p
- M; _' K! b, ^+ _3 M
db.getCollection('student').find({'age':{'$gt':'20'}})
0 f; j9 _7 X  y6 n  J3 A
( A2 C# h" C% y' \; f( R- o& d8 Q( B
1 \8 @3 b3 k% c7 Q  F
% `( @5 B9 m$ w7 P$lt    <   (less  than )
% [, F. l, Y8 T! q
* O+ m- I: G# g2 n' l$lte    <=  (less than  or equal to )1 I8 e9 w3 h/ e6 H
8 H. Z  [/ G- y& g: }
$gt   >    (greater  than )
% k+ t- {- Q, N/ ]# F+ X6 W
+ e# _, z! {; U! G& o) w# r7 v$gte   >=    (greater  than or   equal to); Y7 N: Z2 i3 v5 B# j9 P- x7 Y

. i7 S" I7 d4 K3 T  E5 u0 j, a2 s& X/ W& I: q% W
3 ?$ T/ i/ `9 Z( f+ r' E/ g4 h7 K
$ne  != (not equal to)不等于  {'age': {'$ne': 20}}; K3 y. V  x- B$ Q' U

1 {* K" {  N0 ~( O5 C& l$in  在范围内  {'age': {'$in': [20, 23]}}   注意用list
# [9 d6 k- C  v$ a  n3 M3 S3 f0 d% l7 ]1 Y& p: I: S
$nin  (not in)  不在范围内{'age': {'$nin': [20, 23]}} 注意用list
7 C- q8 c/ K# a+ b7 ~
. J% ^% s9 i" [" b3 P$regex (正则匹配) db.collection.find({'name': {'$regex': '^M.*'}})  匹配以M开头的名字& S; p1 G: H; a- H; {0 l" Y* ~
; @6 z6 ?5 B. z" I
$exists      属性是否存在       {'name': {'$exists': True}}     查找name属性存在6 x8 N4 t- W( n& l% b' d8 R

2 T4 U+ j' V) a! a! K# X$type     类型判断        {'age': {'$type': 'int'}}       age的类型为int* V' I( n/ ~8 m% ^! C
6 V: W# I2 }$ u2 `) ^' J9 T( c" y
$text      文本查询      {'$text': {'$search': 'Mike'}}     text类型的属性中包含Mike字符串# c- _, `3 H9 v" p* y; [' Z

4 a6 `0 f0 ]0 r$ X7 @$or  查找多种条件   ({'$or':[{'name':'chen'},{'name':'wang'}]})
/ Q7 \' H. R" L( \& _: U& i$where 查询两个键的值是否相等 db.test.find({"$where": "this.fields1 == this.fields2"}).limit(10);
' w  K5 p9 v$ }) V' ?9 J% r6 X' M
7 N+ M6 c1 x% T3 v  i7 `$exists 键是否存在   {finaGoalLine:{'$exists':true}}$ r8 F6 y( A; A8 F" q
- p2 F* ?. p9 E- [6 M* A; z
$all  如果您希望找到一个包含这两个元素的数组     [ 'tags' => [ '$all' => [ 'red' 'blank' ]]]
2 Z. d* {; U9 ?, q, d* K1 K" S9 j1 V1 Y5 ^. U: {$ @/ g
$elemMatch   运算符在数组的元素上指定多个条件    'dim_cm'  => ['$elemMatch'  =>  [ '$gt'  =>  22,'$lt'  =>  30,],],
- k* [: {+ z! z- A" N& T- N$size 运算符按元素数查询数组   [ 'tags' => [ '$size' => 3
. ~6 n0 m* A$ o, r. Q( i( V
1 A) X  c9 f" Z% _6 t5 y& j
! b& F2 S* ?/ Y1 O

* y  j% u# \7 ~% Z' u

0 Y3 r$ W' @( p: P9 J3 P& ], u
  V5 W- H6 Y/ E& {

4 q7 }2 R$ f5 N* m1 @, P# |: C
5 d* r) K8 e0 Z5 U% C$ s9 M组合使用方法如下:2 X0 K4 j3 w" W) b% l
+ Y6 W  C( W, O/ Y1 c+ E
db.user.find({"age":{"$gte":18,"$lte":25}})# t( ~7 ~( T/ Y9 k, c) [
# }% L, ~, P3 p5 k3 O4 Z
. P% V$ r$ |2 v) P, ?
3 L4 M( H/ z2 g: q
对于日期的条件查询方法:
* w& U# _% v1 i' G9 P: f! _0 n# G+ t+ {2 N( V; |7 U8 K
db.getCollection('news').find({'pub_date':{'$gte':'2017-07-11  11:0:0'}})
; S; Z3 ~. ^+ y- f+ u- a8 d
- \  i9 h0 @- ~5 \. A2 Q- e) @) Y) Z+ n7 K

6 F  q" P. ?+ B. ^5 F( L3 l2) 不等于 $ne  u$ S8 }# o) ~3 ~

1 D4 f1 j8 @, e; R例子:0 A3 N# T; N+ R5 M
2 }) _* a  `( G5 [, n
db.taobao.find( { age: { $ne : 10} } );* M/ w& e8 J+ q
php7 查询mongodb方法大全
" i, n4 b7 ^1 \' z0 A4 L0 v! P; B8 F) S0 p, _
% N3 ]: B/ [1 s7 Y$ ^3 J' ^/ @

* v1 v, n4 `" r6 l$ \) B+ ?+ \
2 A. }/ Z& ^  `; B$ C& T3 K+ @/ u
9 |+ Q; X2 I% q% T5 f3 {! W; W
2 L' u+ c$ T: v9 I  q& r* z* J

6 N5 Q% g' h5 E, m
: d8 c2 Y1 ?5 B7 @5 y: g) @% k: N" ~1 l$ D

& o; s# x  m# e* W& |1 l; W
& M! g, t% k3 X/ h9 l
作者: admin    时间: 2019-5-15 11:52
查询中的 and or
, X$ r5 Z' J- _; S, ]; M
  1. //and
    ; x! |$ |4 |. S5 }# u4 w
  2. {key1:value1, key2:value2}+ z* d! q$ f0 F4 b1 N' J
  3. [key1=>value1, key2=>value2]
    9 v3 w0 K( u8 n1 V* T
  4. //or
复制代码
. @9 D# V4 ^( |/ W( h) e

! u/ j3 g+ T# _9 S6 R8 `
作者: admin    时间: 2019-5-16 15:39
'sort' => ['id'=> -1] //排序-1是降序  1为升序




欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2