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 E
5 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 S
3 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 \. A
2 Q- e) @) Y) Z+ n7 K
6 F q" P. ?+ B. ^5 F( L3 l
2) 不等于 $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 L
0 v! P; B8 F) S0 p, _
% N3 ]: B/ [1 s7 Y$ ^3 J' ^/ @
* v1 v, n4 `" r
6 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
//and
; x! |$ |4 |. S5 }# u4 w
{key1:value1, key2:value2}
+ z* d! q$ f0 F4 b1 N' J
[key1=>value1, key2=>value2]
9 v3 w0 K( u8 n1 V* T
//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