rcquerybuilder package¶
Submodules¶
rcquerybuilder.builder module¶
redCrown MongoDB QueryBuilder
This module contains the builder and query classes for usage with pymongo
.
Example
Basic Usage (select/find queries):
import pymongo
mongo = pymongo.MongoClient()
db = mongo['db_foobar']
qb = Builder(collection=db['collection_foobar'])
qb.field('name').is_not_in(['Matthew', 'Boris']) \
.field('age').gte(21) \
.field('attributes').is_type('object')
# The query object forwards it's query to the collection
# on on the ``execute()`` call.
query = qb.build()
# cursor is a ``pymongo.cursor.Cursor`` instance.
cursor = qb.build().execute()
# Which is equivalent to:
collection.find({'name': {'$nin': ['Matthew', 'Boris']},
'age': {'$gte': 21},
'attributes': {'$type': 3}})
Update Queries:
qb.update(multi=True) \
.field('foo').equals('bar').set('buzz') \
.field('totals').gt(10) \
.field('counter').inc(1) \
.field('some_list').push({'name': 'testing', 'value': 'cool'})
update_result = qb.build().execute()
# Which is equivalent to:
collection.update_many(
{'foo': 'bar', 'totals': {'$gt': 10}},
{
'$set': {'foo': 'buzz'},
'$inc': {'counter': 1},
'$push': {'some_list': {'name': 'testing', 'value': 'cool'}}
}
)
-
class
rcquerybuilder.builder.
Builder
(collection)¶ Bases:
object
-
build
(**kwargs)¶
-
static
expr
()¶
-
field
(field)¶
-
find
()¶
-
find_and_remove
()¶
-
find_and_update
()¶
-
get_query_list
()¶
-
insert
()¶
-
select
(*field_names)¶
-
select_elem_match
(field_name, expression)¶
-
select_meta
(metadata_keyword)¶
-
select_slice
(field_name, count_or_skip, limit=None)¶
-
set
(value, atomic=True)¶
-
update
(multi=False)¶
-
upsert
(upsert=True)¶
-
-
class
rcquerybuilder.builder.
Expr
¶ Bases:
object
-
add_and
(expression)¶
-
add_many_to_set
(values)¶
-
add_nor
(expression)¶
-
add_or
(expression)¶
-
add_to_set
(value_or_expression)¶
-
all
(values)¶
-
bit_and
(value)¶
-
bit_or
(value)¶
-
bits_all_clear
(value)¶
-
bits_all_set
(value)¶
-
case_sensitive
(case_sensitive)¶
-
comment
(comment)¶
-
current_date
(type='date')¶
-
each
(values)¶
-
elem_match
(expression)¶
-
equals
(value)¶
-
exists
(value=True)¶
-
field
(field)¶
-
get_query
()¶
-
gt
(value)¶
-
gte
(value)¶
-
inc
(value)¶
-
is_in
(values)¶
-
is_not
(expression)¶
-
is_not_in
(values)¶
-
is_type
(type)¶
-
lt
(value)¶
-
lte
(value)¶
-
max
(value)¶
-
min
(value)¶
-
mul
(value)¶
-
ne
(value)¶
-
not_equals
(value)¶
-
not_null
()¶
-
null
()¶
-
operator
(operator, value)¶
-
pop_first
()¶
-
pop_last
()¶
-
position
(position)¶
-
pull
(value_or_expression)¶
-
pull_all
(values)¶
-
push
(value_or_expression)¶
-
push_all
(values)¶
-
range
(start, end)¶
-
regex
(pattern)¶
-
rename
(name)¶
-
search
(search, language=None, case_sensitive=False, diacritic_sensitive=False)¶
-
set
(value, atomic=True)¶
-
set_on_insert
(value)¶
-
size
(size)¶
-
slice
(size)¶
-
sort
(*sort_criteria)¶
-
text
(search, language=None, case_sensitive=False, diacritic_sensitive=False)¶
-
unset_field
()¶
-
where
(javascript)¶
-
-
class
rcquerybuilder.builder.
QueryTypes
¶ Bases:
object
-
TYPE_AGGREGATE
= 'aggregate'¶
-
TYPE_COUNT
= 'count'¶
-
TYPE_DISTINCT
= 'distinct'¶
-
TYPE_FIND
= 'find'¶
-
TYPE_FIND_AND_REMOVE
= 'find_one_and_delete'¶
-
TYPE_FIND_AND_UPDATE
= 'find_and_modify'¶
-
TYPE_GROUP
= 'group'¶
-
TYPE_INSERT
= 'insert'¶
-
TYPE_INSERT_MANY
= 'insert_many'¶
-
TYPE_INSERT_ONE
= 'insert'¶
-
TYPE_MAP_REDUCE
= 'map_reduce'¶
-
TYPE_REMOVE
= 'remove'¶
-
TYPE_UPDATE
= 'update_one'¶
-
TYPE_UPDATE_MANY
= 'update_many'¶
-
rcquerybuilder.pipeline module¶
Pipeline module.
This module provides a fluent api around mongo’s aggregation pipeline.
-
class
rcquerybuilder.pipeline.
GroupStage
¶ Bases:
rcquerybuilder.pipeline.PipelineStage
-
add_to_set
(expression)¶
-
avg
(expression)¶
-
build
()¶
-
first
(expression)¶
-
group_all
()¶
-
id
(*args, **kwargs)¶
-
key
= '$group'¶
-
last
(expression)¶
-
max
(expression)¶
-
min
(expression)¶
-
push
(expression)¶
-
sum
(expression)¶
-
-
class
rcquerybuilder.pipeline.
MatchStage
¶ Bases:
rcquerybuilder.pipeline.PipelineStage
-
key
= '$match'¶
-
-
class
rcquerybuilder.pipeline.
PipelineExpr
¶ Bases:
rcquerybuilder.builder.Expr
-
abs
(expression)¶
-
add
(expression)¶
-
array_elem_at
(array_or_field, index)¶
-
ceil
(expression)¶
-
concat
(*expressions)¶
-
concat_arrays
(*arrays)¶
-
cond
(if_cond, then_cond, else_cond)¶
-
date_to_string
(date, date_format='%Y-%m-%d %H:%M:%S')¶
-
day_of_month
(expression)¶
-
day_of_year
(expression)¶
-
divide
(*expression)¶
-
classmethod
expr
()¶
-
filter
(input, name, cond)¶
-
floor
(expression)¶
-
hour
(expression)¶
-
if_null
(expression, replacement)¶
-
is_array
(expression)¶
-
ln
(expression)¶
-
log
(expression)¶
-
millisecond
(expression)¶
-
minute
(expression)¶
-
mod
(expression)¶
-
month
(expression)¶
-
multiply
(*expression)¶
-
operator
(operator, value_or_expression)¶
-
second
(expression)¶
-
set
(value, atomic=None)¶
-
sqrt
(expression)¶
-
strcasecmp
(field1, field2)¶
-
substr
(string, start, length)¶
-
subtract
(expression)¶
-
to_lower
(expression)¶
-
to_upper
(expression)¶
-
week
(expression)¶
-
year
(expression)¶
-
-
class
rcquerybuilder.pipeline.
PipelineStage
¶ Bases:
rcquerybuilder.pipeline.PipelineExpr
-
build
()¶
-
key
= None¶
-
-
class
rcquerybuilder.pipeline.
ProjectStage
¶ Bases:
rcquerybuilder.pipeline.PipelineStage
-
id
(show=True)¶
-
key
= '$project'¶
-
-
class
rcquerybuilder.pipeline.
SortStage
¶ Bases:
object
-
build
()¶
-
by
(*args)¶
-
key
= '$sort'¶
-
sort
(field, direction=1)¶
-
-
rcquerybuilder.pipeline.
expr
()¶ Creates a new
PipelineExpr
. Useful for chaining.Returns: The created PipelineExpr
.Return type: PipelineExpr
Module contents¶
-
class
rcquerybuilder.
Builder
(collection)¶ Bases:
object
-
build
(**kwargs)¶
-
static
expr
()¶
-
field
(field)¶
-
find
()¶
-
find_and_remove
()¶
-
find_and_update
()¶
-
get_query_list
()¶
-
insert
()¶
-
select
(*field_names)¶
-
select_elem_match
(field_name, expression)¶
-
select_meta
(metadata_keyword)¶
-
select_slice
(field_name, count_or_skip, limit=None)¶
-
set
(value, atomic=True)¶
-
update
(multi=False)¶
-
upsert
(upsert=True)¶
-
-
class
rcquerybuilder.
Expr
¶ Bases:
object
-
add_and
(expression)¶
-
add_many_to_set
(values)¶
-
add_nor
(expression)¶
-
add_or
(expression)¶
-
add_to_set
(value_or_expression)¶
-
all
(values)¶
-
bit_and
(value)¶
-
bit_or
(value)¶
-
bits_all_clear
(value)¶
-
bits_all_set
(value)¶
-
case_sensitive
(case_sensitive)¶
-
comment
(comment)¶
-
current_date
(type='date')¶
-
each
(values)¶
-
elem_match
(expression)¶
-
equals
(value)¶
-
exists
(value=True)¶
-
field
(field)¶
-
get_query
()¶
-
gt
(value)¶
-
gte
(value)¶
-
inc
(value)¶
-
is_in
(values)¶
-
is_not
(expression)¶
-
is_not_in
(values)¶
-
is_type
(type)¶
-
lt
(value)¶
-
lte
(value)¶
-
max
(value)¶
-
min
(value)¶
-
mul
(value)¶
-
ne
(value)¶
-
not_equals
(value)¶
-
not_null
()¶
-
null
()¶
-
operator
(operator, value)¶
-
pop_first
()¶
-
pop_last
()¶
-
position
(position)¶
-
pull
(value_or_expression)¶
-
pull_all
(values)¶
-
push
(value_or_expression)¶
-
push_all
(values)¶
-
range
(start, end)¶
-
regex
(pattern)¶
-
rename
(name)¶
-
search
(search, language=None, case_sensitive=False, diacritic_sensitive=False)¶
-
set
(value, atomic=True)¶
-
set_on_insert
(value)¶
-
size
(size)¶
-
slice
(size)¶
-
sort
(*sort_criteria)¶
-
text
(search, language=None, case_sensitive=False, diacritic_sensitive=False)¶
-
unset_field
()¶
-
where
(javascript)¶
-
-
class
rcquerybuilder.
PipelineExpr
¶ Bases:
rcquerybuilder.builder.Expr
-
abs
(expression)¶
-
add
(expression)¶
-
array_elem_at
(array_or_field, index)¶
-
ceil
(expression)¶
-
concat
(*expressions)¶
-
concat_arrays
(*arrays)¶
-
cond
(if_cond, then_cond, else_cond)¶
-
date_to_string
(date, date_format='%Y-%m-%d %H:%M:%S')¶
-
day_of_month
(expression)¶
-
day_of_year
(expression)¶
-
divide
(*expression)¶
-
classmethod
expr
()¶
-
filter
(input, name, cond)¶
-
floor
(expression)¶
-
hour
(expression)¶
-
if_null
(expression, replacement)¶
-
is_array
(expression)¶
-
ln
(expression)¶
-
log
(expression)¶
-
millisecond
(expression)¶
-
minute
(expression)¶
-
mod
(expression)¶
-
month
(expression)¶
-
multiply
(*expression)¶
-
operator
(operator, value_or_expression)¶
-
second
(expression)¶
-
set
(value, atomic=None)¶
-
sqrt
(expression)¶
-
strcasecmp
(field1, field2)¶
-
substr
(string, start, length)¶
-
subtract
(expression)¶
-
to_lower
(expression)¶
-
to_upper
(expression)¶
-
week
(expression)¶
-
year
(expression)¶
-
-
class
rcquerybuilder.
PipelineStage
¶ Bases:
rcquerybuilder.pipeline.PipelineExpr
-
build
()¶
-
key
= None¶
-