NoSQL的CURD结构体的定义

前端之家收集整理的这篇文章主要介绍了NoSQL的CURD结构体的定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Nosql的CURD结构体的定义


flyfish 2015-7-23


参考MongoDB Wire Protocol
在这里document部分使用json表示 使用boost::property_tree解析



#pragma once
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>


struct MsgHeader 
{
	int   messageLength; 
	int   requestID;    
	int   responseTo;    
	int   opCode;        
};


//操作类型 主要是增删改查
enum Operations 
{
	dbUpdate = 2001,dbInsert = 2002,dbQuery  = 2003,dbDelete = 2004


};


 const char * opToString( int op ) {
	switch ( op ) {
	case 0: return "none";


	case dbUpdate: return "update";
	case dbInsert: return "insert";
	case dbQuery:  return "query";
	case dbDelete: return "remove";


	default:
		// 输出异常信息 cannot translate opcode 
		return "";
	}
}


typedef boost::property_tree::ptree  ObjectNotation;
struct OP_UPDATE 
{
	MsgHeader       header;             
	int             ZERO;               
	string          ObjectName; 
	int             flags;              
	ObjectNotation  selector;           
	ObjectNotation  update;            
};


//selector  {ID:1}  
//update {key1:"value1",key2:"value2"}
//相当于sql UPDATE ObjectName SET key1=value1,key2=value2 WHERE ID=1


struct OP_INSERT
{
	MsgHeader       header;            
	int             flags;             
	string          ObjectName; 
	ObjectNotation* ObjectNotations;     
};
//ObjectNotations { ID:1,key1:value1,key2:value2 } 
//相当于sql INSERT INTO ObjectName(ID,key1,key2)VALUES (1,value1,value2)




struct OP_QUERY 
{
	MsgHeader header;                
	int       flags;                 
	string    ObjectName ;   
	int       numberToSkip;       
	int       numberToReturn;        


	ObjectNotation  query;                  
	ObjectNotation  returnFieldsSelector;  


};


//query { ID: "1 },//returnFieldsSelector { ID: 1,Name: 1}
//相当于sql SELECT ID,Name FROM ObjectName WHERE ID=1


struct OP_DELETE
{
	MsgHeader header;             
	int     ZERO;              
	string    ObjectName ;
	int     flags;             
	ObjectNotation  selector;          
};
//selector { ID: "1" } 
//相当于sql DELETE FROM ObjectName WHERE ID = 1
原文链接:https://www.f2er.com/nosql/203855.html

猜你在找的NoSQL相关文章