本文整理汇总了C++中mongo::DBClientConnection::update方法的典型用法代码示例。如果您正苦于以下问题:C++ DBClientConnection::update方法的具体用法?C++ DBClientConnection::update怎么用?C++ DBClientConnection::update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mongo::DBClientConnection
的用法示例。
在下文中一共展示了DBClientConnection::update方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BSON
void
mime::Mongo::updateTFIDF(mongo::DBClientConnection &c, std::string &ns, const mongo::OID &oid, std::map<std::string, std::pair<float, float> > &tokens)
{
c.update(ns, BSON("_id"<<oid), BSON("$unset"<<BSON("tf"<<1)));
mongo::BSONArrayBuilder arrb;
for(std::map<std::string, std::pair<float, float> >::iterator it=tokens.begin();it!=tokens.end();++it)
{
std::pair<float, float> p = it->second;
arrb.append(BSON("w"<<it->first<<"f"<<p.first<<"idf"<<p.second));
}
c.update(ns, BSON("_id"<<oid), BSON("$set"<<BSON("tf"<<arrb.arr())));
}
示例2: writeToDB
/**********************************************************
*convert FileRec to bson, then write to db
*
***********************************************************/
void FileRec::writeToDB(mongo::DBClientConnection &conn) {
BSONObjBuilder record; //build BSONObj
record.append("filename", this->filename);
record.append("Tempname", this->tempname);
record.append("curhash", this->recentHash);
record.append("ovhash", this->origHash);
record.append("length", this->length);
record.append("nversions", this->versionCount);
/* love you */ long long time = this->modifytime.tv_nsec;
record.append("Mtnsec", time);
time = this->modifytime.tv_sec;
record.append("mtsec", time);
record.append("currentversion", this->refNum);
mongo::BSONArrayBuilder bArr; //arrays to store multiple objects inside main object
mongo::BSONArrayBuilder Comments;
for (vector<string>::iterator it = blockhashes.begin(); it != blockhashes.end(); ++it) {
bArr.append(*it);
}
for (vector<comment>::iterator it = comments.begin(); it != comments.end(); ++it) {
BSONObjBuilder comment;
comment.append("version", it->version); //
comment.append("comment", it->comment);
Comments.append(comment.obj());
}
if (!versions.empty()) { //if there are id's in the versions collection
mongo::BSONArrayBuilder Version; //store the id's in an BSONarray
for (vector<string>::iterator it = versions.begin(); it != versions.end(); ++it) {
BSONObjBuilder version;
version.append("id", (*it));
Version.append(version.obj());
}
record.append("versionrec", Version.arr());
}
record.append("FileBlkHashes", bArr.arr()); //adding arrays to main record
record.append("comments", Comments.arr());
BSONObj result = record.obj();
auto_ptr<mongo::DBClientCursor> cursor = conn.query("fileRecords.Filerec", MONGO_QUERY("filename" << filename));
if (cursor->more()) {//already file rec in db so update
conn.update("fileRecords.Filerec", MONGO_QUERY("filename" << filename), result);
} else {
conn.insert("fileRecords.Filerec", result); //must be new record
}
string e = conn.getLastError();
if (!e.empty()) {
cout << "something failed failed: " << e << std::endl;
sleep(1);
exit(1);
}
else{
cout << "record " << this->refNum << " successfully written to database" << endl;
}
}
示例3: writeToDB
/**********************************************************
*similar to writetodb in FileRec
*
***********************************************************/
void VersionRec::writeToDB(mongo::DBClientConnection& conn) {
BSONObjBuilder record;
if (this->versionid.empty()) { //if no id has been read in because it is a new version
record.genOID();//create one
} else {
mongo::OID theoid(this->versionid); //use current id
record.append("_id", theoid);
}
//convert to BSON
record.append("Tempname", this->tmpname);
record.append("filehash", this->filehash);
record.append("length", this->length);
record.append("Version", this->versionnumber);
/* love you */ long long time = this->modifytime.tv_nsec;
record.append("Mtnsec", time);
time = this->modifytime.tv_sec;
record.append("mtsec", time);
mongo::BSONArrayBuilder Version;
for (vector<VersionDiffBlock>::iterator it = changes.begin(); it != changes.end(); ++it) {
BSONObjBuilder version;
version.append("Blknum", (*it).blockNo);
version.append("hash", (*it).blockHash);
Version.append(version.obj());
}
record.append("Blktable", Version.arr());
BSONObj result = record.obj();
if (this->versionid.empty()) {
mongo::BSONElement thing;
result.getObjectID(thing);
mongo::OID anoid = thing.OID();
this->versionid = anoid.toString();
}
auto_ptr<mongo::DBClientCursor> cursor = conn.query("fileRecords.FileVersion", MONGO_QUERY("_id" << mongo::OID(this->versionid)));
if (cursor->more()) {//already a version with same id, update
conn.update("fileRecords.FileVersion", MONGO_QUERY("_id" << mongo::OID(this->versionid)), result);
} else { //new version
conn.insert("fileRecords.FileVersion", result);
}
string e = conn.getLastError();
if (!e.empty()) {
cout << "something failed failed: " << e << std::endl;
sleep(1);
exit(1);
}
else{
cout << "Version " << this->versionnumber << " successfully written to database" << endl;
}
}
示例4:
void
ubcallback(void *mydata, int err, struct ub_result *result)
{
if (err < 0)
return;
int *resolving = (int*)mydata;
(*resolving)--;
cout << *resolving << endl;
if (result->havedata) {
cdpi_dns dns_decoder;
if (dns_decoder.decode((char*)result->answer_packet, result->answer_len)) {
const std::list<cdpi_dns_rr> &answer = dns_decoder.get_answer();
std::list<cdpi_dns_rr>::const_iterator it_ans;
for (it_ans = answer.begin(); it_ans != answer.end(); ++it_ans) {
// TODO: handle CNAME
if (ntohs(it_ans->m_type) == 6 && ntohs(it_ans->m_class) == 1) {
ptr_cdpi_dns_soa p_soa = DNS_RDATA_TO_SOA(it_ans->m_rdata);
mongo::BSONObjBuilder b1, b2;
mongo::BSONObj obj;
mongo::Date_t date;
get_epoch_millis(date);
b2.append("_id", it_ans->m_name);
b2.append("mname", p_soa->m_mname);
b2.append("rname", p_soa->m_rname);
b2.append("serial", p_soa->m_serial);
b2.append("refresh", p_soa->m_refresh);
b2.append("retry", p_soa->m_retry);
b2.append("expire", p_soa->m_expire);
b2.append("minimum", p_soa->m_minimum);
b2.append("date", date);
obj = b2.obj();
cout << obj.toString() << endl;
b1.append("_id", it_ans->m_name);
mongo_conn.update(http_soa, b1.obj(), obj, true);
}
}
}
}
ub_resolve_free(result);
}