13 #ifndef NECBAAS_NBQUERY_H
14 #define NECBAAS_NBQUERY_H
20 #include <json/json.h>
66 return AddSimpleOp(
"$eq", key, value);
68 return AddSimpleOp(
"", key, value);
85 return AddSimpleOp(
"$lt", key, value);
99 return AddSimpleOp(
"$lte", key, value);
111 template <
typename T>
113 return AddSimpleOp(
"$gt", key, value);
125 template <
typename T>
127 return AddSimpleOp(
"$gte", key, value);
139 template <
typename T>
141 return AddSimpleOp(
"$ne", key, value);
175 NbQuery &
Regex(
const std::string &key,
const std::string ®exp,
const std::string &options =
"");
208 NbQuery &
Or(
const std::vector<NbQuery> queries);
217 NbQuery &
And(
const std::vector<NbQuery> queries);
369 const static int kLimitDefault;
371 Json::Value conditions_;
372 std::vector<std::string> order_{};
374 int limit_{kLimitDefault};
375 bool delete_mark_{
false};
376 std::map<std::string, bool> projection_{};
387 template <
typename T>
388 NbQuery &AddSimpleOpPrimitive(
const std::string &op,
const std::string &key, T value) {
391 conditions_[key] = value;
395 conditions_[key] = json;
408 template <
typename T>
409 NbQuery &AddSimpleOpJson(
const std::string &op,
const std::string &key, T value) {
412 conditions_[key] = value.GetSubstitutableValue();
415 json[op] = value.GetSubstitutableValue();
416 conditions_[key] = json;
429 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
int value);
438 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key, int64_t value);
447 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
double value);
456 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
bool value);
465 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
const std::string &value);
474 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
const NbJsonObject &value);
483 NbQuery &AddSimpleOp(
const std::string &op,
const std::string &key,
const NbJsonArray &value);
491 NbQuery &ConcatQueries(
const std::string &op, std::vector<NbQuery> queries);
494 #endif // NECBAAS_NBQUERY_H
std::string GetDeleteMarkString() const
[内部処理用]
オブジェクト検索クラス.
Definition: nb_query.h:41
std::string GetTimeoutString() const
[内部処理用]
NbQuery & Regex(const std::string &key, const std::string ®exp, const std::string &options="")
正規表現一致条件を追加する.
const Json::Value & GetConditions() const
[内部処理用]
NbQuery & DeleteMark(bool delete_mark)
削除マークされたデータを読み込むフラグを設定する.
NbQuery & Skip(int skip)
Skip値を設定する.
std::string GetSkipString() const
[内部処理用]
NbQuery & GreaterThanOrEqual(const std::string &key, T value)
大なりまたは等しいを追加する.
Definition: nb_query.h:126
NbQuery & Exists(const std::string &key)
フィールドの存在条件を追加する.
NbReadPreference
参照する DB の指定
Definition: nb_query.h:29
NbQuery & Projection(const std::map< std::string, bool > &projection)
プロジェクションを設定する.
NbQuery & NotEquals(const std::string &key, T value)
不一致条件を追加する.
Definition: nb_query.h:140
NbQuery & Not(const std::string &key)
指定したキーの条件を反転(not)する.
NbQuery & All(const std::string &key, const NbJsonArray &array)
array に指定された値がすべて合致する条件を追加する.
NbQuery & LessThan(const std::string &key, T value)
小なり条件を追加する.
Definition: nb_query.h:84
NbQuery & And(const std::vector< NbQuery > queries)
AND条件を生成する.
NbQuery & ReadPreference(NbReadPreference read_preference)
参照するDBの指定を設定する.
Jsonオブジェクト.
Definition: nb_json_object.h:34
NbQuery & NotExists(const std::string &key)
フィールドの非存在条件を追加する.
NbQuery & Or(const std::vector< NbQuery > queries)
OR条件を生成する.
NbQuery & Limit(int limit)
Limit値を設定する.
NbQuery & EqualTo(const std::string &key, T value)
一致条件を追加する.
Definition: nb_query.h:63
NbQuery & In(const std::string &key, const NbJsonArray &array)
array に指定された値のいずれかと一致する条件を追加する.
std::string GetProjectionString() const
[内部処理用]
std::string GetLimitString() const
[内部処理用]
std::string GetOrderString() const
[内部処理用]
NbQuery & GreaterThan(const std::string &key, T value)
大なり条件を追加する.
Definition: nb_query.h:112
std::string GetConditionsString() const
[内部処理用]
Json配列.
Definition: nb_json_array.h:37
NbQuery & Timeout(int timeout)
クエリタイムアウト(ミリ秒)設定する.
NbQuery & OrderBy(const std::vector< std::string > &order)
ソート条件を設定する.
NbQuery & LessThanOrEqual(const std::string &key, T value)
小なりまたは等しいを追加する.
Definition: nb_query.h:98
std::string GetReadPreferenceString() const
[内部処理用]