MongoDB的C++驱动程序在update()上返回一个void,与客户端不同,客户端返回一个写入结果来指示正在更新的文档数量。根据我的理解,影响0文档的更新操作是完全合法的结果,因此不会引发异常。MongoDB C++驱动程序中的Upate DB
virtual void insert(const std::string &ns, BSONObj obj , int flags=0) = 0;
virtual void insert(const std::string &ns, const std::vector<BSONObj>& v , int flags=0) = 0;
virtual void remove(const std::string &ns , Query query, bool justOne = 0) = 0;
virtual void remove(const std::string &ns , Query query, int flags) = 0;
virtual void update(const std::string &ns,
Query query,
BSONObj obj,
bool upsert = false, bool multi = false) = 0;
virtual void update(const std::string &ns, Query query, BSONObj obj, int flags) = 0;
为什么我问这个的原因是因为我通过DB执行的Upsert,我想知道,如果的Upsert创建新文档或者更新的数据库来代替。没有写结果,我无法有效地确定upsert的结果。
1)是否有为什么提供了C++的驱动程序
2)在这种情况下不归路的原因,就是去取回写结果,而无需执行对数据库的查询的正确方法。
,我期望你需要调用'getLastError'其中包含'拥有的该命令影响的文件数N'。 – WiredPrairie