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 
[内部処理用]