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¶
-