本文整理汇总了C++中BSONObjBuilder::appendDate方法的典型用法代码示例。如果您正苦于以下问题:C++ BSONObjBuilder::appendDate方法的具体用法?C++ BSONObjBuilder::appendDate怎么用?C++ BSONObjBuilder::appendDate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BSONObjBuilder
的用法示例。
在下文中一共展示了BSONObjBuilder::appendDate方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: mxArrayToString
mxArray *GetTick(mxArray *inst, mxArray *start, mxArray *end)
{
mxArray *result;
const char *field_names[] = {"tradingday", "time", "instrument", "o", "h", "l", "c", "v", "i", "a1", "b1", "av1", "bv1"};
string instrument = mxArrayToString(inst);
int st = mxGetScalar(start);
int et = mxGetScalar(end);
auto_ptr<DBClientCursor> cursor;
BSONObjBuilder b;
BSONObjBuilder timePeriod;
b.append("InstrumentID", instrument);
timePeriod.appendDate("$gte",( (st - 719529) * 24LL)* 60LL * 60LL * 1000LL);
timePeriod.appendDate("$lte", ( (et - 719529 + 1) * 24LL) * 60LL * 60LL * 1000LL);
b.append("UpdateTime", timePeriod.obj());
BSONObj qry = b.obj();
cursor = mCon->query(string("MarketData.") + collection, qry);
int size = cursor->itcount();
// mexPrintf("数据长度%d, collection为%s\n", size, collection.c_str());
mwSize dims[2] = {1, size};
result = mxCreateStructArray(2, dims, sizeof(field_names)/sizeof(*field_names), field_names);
cursor = mCon->query(string("MarketData.") + collection, qry);
BSONObj p;
int i = size - 1;
while(cursor->more())
{
p = cursor->next();
tm buf;
//trun into peking time;
Date_t pkTime = Date_t(p["UpdateTime"].Date().millis + 8 * 3600000LL);
double time = pkTime.millis%1000 / 100 / 100000.0;
pkTime.toTm(&buf);
int day = (buf.tm_year + 1900) * 10000 + (buf.tm_mon + 1) * 100 + buf.tm_mday;
time = time + buf.tm_hour + buf.tm_min / 100.0 + buf.tm_sec / 10000.0;
mxSetField(result, i, "tradingday", mxCreateDoubleScalar(day));
mxSetField(result, i, "time", mxCreateDoubleScalar(time));
mxSetField(result, i, "instrument", mxCreateString(instrument.c_str()));
mxSetField(result, i, "o", mxCreateDoubleScalar( p["OpenPrice"].Double() ));
mxSetField(result, i, "h", mxCreateDoubleScalar(p["HighestPrice"].Double()));
mxSetField(result, i, "l", mxCreateDoubleScalar(p["LowestPrice"].Double()));
mxSetField(result, i, "c", mxCreateDoubleScalar(p["LastPrice"].Double()));
mxSetField(result, i, "v", mxCreateDoubleScalar(p["Volume"].Int()));
mxSetField(result, i, "i", mxCreateDoubleScalar(p["OpenInterest"].Double()));
mxSetField(result, i, "a1", mxCreateDoubleScalar(p["AskPrice1"].Double()));
mxSetField(result, i, "b1", mxCreateDoubleScalar(p["BidPrice1"].Double()));
mxSetField(result, i, "av1", mxCreateDoubleScalar(p["AskVolume1"].Int()));
mxSetField(result, i, "bv1", mxCreateDoubleScalar(p["BidVolume1"].Int()));
--i;
if(i < -1)
{
mexWarnMsgTxt("GetTick程序越界!");
break;
}
}
return result;
}
示例2: _summarizeStatus
void ReplSetImpl::_summarizeStatus(BSONObjBuilder& b) const {
vector<BSONObj> v;
const Member *_self = this->_self;
assert( _self );
// add self
{
BSONObjBuilder bb;
bb.append("_id", (int) _self->id());
bb.append("name", _self->fullName());
bb.append("health", 1.0);
bb.append("state", (int) box.getState().s);
bb.append("stateStr", box.getState().toString());
bb.appendTimestamp("optime", lastOpTimeWritten.asDate());
bb.appendDate("optimeDate", lastOpTimeWritten.getSecs() * 1000LL);
string s = _self->lhb();
if( !s.empty() )
bb.append("errmsg", s);
bb.append("self", true);
v.push_back(bb.obj());
}
Member *m =_members.head();
while( m ) {
BSONObjBuilder bb;
bb.append("_id", (int) m->id());
bb.append("name", m->fullName());
double h = m->hbinfo().health;
bb.append("health", h);
bb.append("state", (int) m->state().s);
if( h == 0 ) {
// if we can't connect the state info is from the past and could be confusing to show
bb.append("stateStr", "(not reachable/healthy)");
}
else {
bb.append("stateStr", m->state().toString());
}
bb.append("uptime", (unsigned) (m->hbinfo().upSince ? (time(0)-m->hbinfo().upSince) : 0));
bb.appendTimestamp("optime", m->hbinfo().opTime.asDate());
bb.appendDate("optimeDate", m->hbinfo().opTime.getSecs() * 1000LL);
bb.appendTimeT("lastHeartbeat", m->hbinfo().lastHeartbeat);
bb.append("ping", m->hbinfo().ping);
string s = m->lhb();
if( !s.empty() )
bb.append("errmsg", s);
v.push_back(bb.obj());
m = m->next();
}
sort(v.begin(), v.end());
b.append("set", name());
b.appendTimeT("date", time(0));
b.append("myState", box.getState().s);
if (_currentSyncTarget) {
b.append("syncingTo", _currentSyncTarget->fullName());
}
b.append("members", v);
if( replSetBlind )
b.append("blind",true); // to avoid confusion if set...normally never set except for testing.
}
示例3:
BSONObj CollectionBulkLoaderImpl::Stats::toBSON() const {
BSONObjBuilder bob;
bob.appendDate("startBuildingIndexes", startBuildingIndexes);
bob.appendDate("endBuildingIndexes", endBuildingIndexes);
auto indexElapsed = endBuildingIndexes - startBuildingIndexes;
long long indexElapsedMillis = duration_cast<Milliseconds>(indexElapsed).count();
bob.appendNumber("indexElapsedMillis", indexElapsedMillis);
return bob.obj();
}
示例4:
BSONObj DatabaseCloner::Stats::toBSON() const {
BSONObjBuilder bob;
bob.appendNumber("collections", collections);
bob.appendNumber("clonedCollections", clonedCollections);
bob.appendDate("start", start);
bob.appendDate("end", end);
auto elapsed = end - start;
long long elapsedMillis = duration_cast<Milliseconds>(elapsed).count();
bob.appendNumber("elapsedMillis", elapsedMillis);
return bob.obj();
}
示例5:
BSONObj CollectionCloner::Stats::toBSON() const {
BSONObjBuilder bob;
bob.appendNumber("documents", documents);
bob.appendNumber("indexes", indexes);
bob.appendNumber("fetchedBatches", fetchBatches);
bob.appendDate("start", start);
bob.appendDate("end", end);
auto elapsed = end - start;
long long elapsedMillis = duration_cast<Milliseconds>(elapsed).count();
bob.appendNumber("elapsedMillis", elapsedMillis);
return bob.obj();
}
示例6: run
virtual bool run(OperationContext* txn,
const string&,
BSONObj& cmdObj,
int,
string& errmsg,
BSONObjBuilder& result) {
/* currently request to arbiter is (somewhat arbitrarily) an ismaster request that is not
authenticated.
*/
if (cmdObj["forShell"].trueValue())
LastError::get(txn->getClient()).disable();
appendReplicationInfo(txn, result, 0);
if (serverGlobalParams.configsvrMode == ServerGlobalParams::ConfigServerMode::CSRS) {
result.append("configsvr", 1);
}
result.appendNumber("maxBsonObjectSize", BSONObjMaxUserSize);
result.appendNumber("maxMessageSizeBytes", MaxMessageSizeBytes);
result.appendNumber("maxWriteBatchSize", BatchedCommandRequest::kMaxWriteBatchSize);
result.appendDate("localTime", jsTime());
result.append("maxWireVersion", maxWireVersion);
result.append("minWireVersion", minWireVersion);
return true;
}
示例7: prepareRequestVoteResponse
// Produce a reply to a RAFT-style RequestVote RPC; this is MongoDB ReplSetFresh command
// The caller should validate that the message is for the correct set, and has the required data
void TopologyCoordinatorImpl::prepareRequestVoteResponse(const Date_t now,
const BSONObj& cmdObj,
const OpTime& lastOpApplied,
std::string& errmsg,
BSONObjBuilder& result) {
string who = cmdObj["who"].String();
int cfgver = cmdObj["cfgver"].Int();
OpTime opTime(cmdObj["opTime"].Date());
bool weAreFresher = false;
if( _currentConfig.getConfigVersion() > cfgver ) {
log() << "replSet member " << who << " is not yet aware its cfg version "
<< cfgver << " is stale";
result.append("info", "config version stale");
weAreFresher = true;
}
// check not only our own optime, but any other member we can reach
else if( opTime < _commitOkayThrough ||
opTime < _latestKnownOpTime()) {
weAreFresher = true;
}
result.appendDate("opTime", lastOpApplied.asDate());
result.append("fresher", weAreFresher);
bool doVeto = _shouldVeto(cmdObj, errmsg);
result.append("veto",doVeto);
if (doVeto) {
result.append("errmsg", errmsg);
}
}
示例8: createBSONMetadataDocument
BSONObj createBSONMetadataDocument(const BSONObj& metadata, Date_t date) {
BSONObjBuilder builder;
builder.appendDate(kFTDCIdField, date);
builder.appendNumber(kFTDCTypeField, static_cast<int>(FTDCType::kMetadata));
builder.appendObject(kFTDCDocField, metadata.objdata(), metadata.objsize());
return builder.obj();
}
示例9: createBSONMetricChunkDocument
BSONObj createBSONMetricChunkDocument(ConstDataRange buf, Date_t date) {
BSONObjBuilder builder;
builder.appendDate(kFTDCIdField, date);
builder.appendNumber(kFTDCTypeField, static_cast<int>(FTDCType::kMetricChunk));
builder.appendBinData(kFTDCDataField, buf.length(), BinDataType::BinDataGeneral, buf.data());
return builder.obj();
}
示例10: getNext
DocumentSource::GetNextResult DocumentSourceCollStats::getNext() {
pExpCtx->checkForInterrupt();
if (_finished) {
return GetNextResult::makeEOF();
}
_finished = true;
BSONObjBuilder builder;
builder.append("ns", pExpCtx->ns.ns());
auto shardName = _mongod->getShardName(pExpCtx->opCtx);
if (!shardName.empty()) {
builder.append("shard", shardName);
}
builder.append("host", getHostNameCachedAndPort());
builder.appendDate("localTime", jsTime());
if (_collStatsSpec.hasField("latencyStats")) {
// If the latencyStats field exists, it must have been validated as an object when parsing.
bool includeHistograms = false;
if (_collStatsSpec["latencyStats"].type() == BSONType::Object) {
includeHistograms = _collStatsSpec["latencyStats"]["histograms"].boolean();
}
_mongod->appendLatencyStats(pExpCtx->ns, includeHistograms, &builder);
}
if (_collStatsSpec.hasField("storageStats")) {
// If the storageStats field exists, it must have been validated as an object when parsing.
BSONObjBuilder storageBuilder(builder.subobjStart("storageStats"));
Status status = _mongod->appendStorageStats(
pExpCtx->ns, _collStatsSpec["storageStats"].Obj(), &storageBuilder);
storageBuilder.doneFast();
if (!status.isOK()) {
uasserted(40280,
str::stream() << "Unable to retrieve storageStats in $collStats stage: "
<< status.reason());
}
}
if (_collStatsSpec.hasField("count")) {
Status status = _mongod->appendRecordCount(pExpCtx->ns, &builder);
if (!status.isOK()) {
uasserted(40481,
str::stream() << "Unable to retrieve count in $collStats stage: "
<< status.reason());
}
}
return {Document(builder.obj())};
}
示例11: serialize
void Chunk::serialize(BSONObjBuilder& to){
if ( _lastmod )
to.appendDate( "lastmod" , _lastmod );
else
to.appendTimestamp( "lastmod" );
to << "ns" << _ns;
to << "min" << _min;
to << "max" << _max;
to << "shard" << _shard;
}
示例12: logTransactionOpsRef
void logTransactionOpsRef(GTID gtid, uint64_t timestamp, uint64_t hash, OID& oid) {
Lock::DBRead lk1("local");
BSONObjBuilder b;
addGTIDToBSON("_id", gtid, b);
b.appendDate("ts", timestamp);
b.append("h", (long long)hash);
b.append("a", true);
b.append("ref", oid);
BSONObj bb = b.done();
writeEntryToOplog(bb, true);
}
示例13: run
virtual bool run(const string& , BSONObj& cmdObj, int, string& errmsg, BSONObjBuilder& result, bool /*fromRepl*/) {
/* currently request to arbiter is (somewhat arbitrarily) an ismaster request that is not
authenticated.
*/
appendReplicationInfo(result, 0);
result.appendNumber("maxBsonObjectSize", BSONObjMaxUserSize);
result.appendNumber("maxMessageSizeBytes", MaxMessageSizeBytes);
result.appendDate("localTime", jsTime());
return true;
}
示例14: run
void run(){
Scope * s = globalScriptEngine->createScope();
{ // date
BSONObj o;
{
BSONObjBuilder b;
b.appendDate( "d" , 123456789 );
o = b.obj();
}
s->setObject( "x" , o );
s->invoke( "return x.d.getTime() != 12;" , BSONObj() );
ASSERT_EQUALS( true, s->getBoolean( "return" ) );
s->invoke( "z = x.d.getTime();" , BSONObj() );
ASSERT_EQUALS( 123456789 , s->getNumber( "z" ) );
s->invoke( "z = { z : x.d }" , BSONObj() );
BSONObj out = s->getObject( "z" );
ASSERT( out["z"].type() == Date );
}
{ // regex
BSONObj o;
{
BSONObjBuilder b;
b.appendRegex( "r" , "^a" , "i" );
o = b.obj();
}
s->setObject( "x" , o );
s->invoke( "z = x.r.test( 'b' );" , BSONObj() );
ASSERT_EQUALS( false , s->getBoolean( "z" ) );
s->invoke( "z = x.r.test( 'a' );" , BSONObj() );
ASSERT_EQUALS( true , s->getBoolean( "z" ) );
s->invoke( "z = x.r.test( 'ba' );" , BSONObj() );
ASSERT_EQUALS( false , s->getBoolean( "z" ) );
s->invoke( "z = { a : x.r };" , BSONObj() );
BSONObj out = s->getObject("z");
ASSERT_EQUALS( (string)"^a" , out["a"].regex() );
ASSERT_EQUALS( (string)"i" , out["a"].regexFlags() );
}
delete s;
}
示例15: _logTransactionOps
static void _logTransactionOps(GTID gtid, uint64_t timestamp, uint64_t hash, BSONArray& opInfo) {
Lock::DBRead lk1("local");
BSONObjBuilder b;
addGTIDToBSON("_id", gtid, b);
b.appendDate("ts", timestamp);
b.append("h", (long long)hash);
b.append("a", true);
b.append("ops", opInfo);
BSONObj bb = b.done();
// write it to oplog
LOG(3) << "writing " << bb.toString(false, true) << " to master " << endl;
writeEntryToOplog(bb, true);
}