您的位置:首页 > 运维架构 > Shell

SQL to mongo Shell to C++

2016-06-08 10:29 477 查看
SQLmongo
Shell
C++ Driver
INSERT INTO USERS
VALUES( 1, 1)


db.users.insert( { a: 1, b: 1 } )


// GENOID is optional. if not done by client,
// server will add an _id

c.insert("mydb.users",
BSON(GENOID<<"a"<<1<<"b"<<1));
// then:
string err = c.getLastError();


SELECT a,b FROM users


db.users.find( {},
{a: 1, b: 1 }
)


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users", Query(),
0, 0, BSON("a"<<1<<"b"<<1));


SELECT * FROM users


db.users.find()


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users", Query());


SELECT *
FROM users
WHERE age=33


db.users.find( { age: 33 } )


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users", QUERY("age"<<33))
// or:
auto_ptr<DBClientCursor> cursor =
c.query("mydb.users", BSON("age"<<33))


SELECT *
FROM users
WHERE age=33ORDER BY name


db.users.find( { age: 33 } ).sort( { name: 1 } )


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users",
QUERY("age"<<33).sort("name"));


SELECT *
FROM users
WHERE age>33
AND age<=40


db.users.find( { 'age': { $gt:33, $lte:40 } } )


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users",
QUERY("age"<<GT<<33<<LTE<<40));


CREATE INDEX myindexname
ON users(name)


db.users.ensureIndex( {name: 1 } )


c.ensureIndex("mydb.users", BSON("name"<<1));


SELECT *
FROM users
LIMIT 10
SKIP 20


db.users.find().limit(10).skip(20)


auto_ptr<DBClientCursor> cursor =
c.query("mydb.users", Query(),
10, 20);


SELECT * FROM users LIMIT 1


db.users.findOne()


bo obj = c.findOne("mydb.users", Query());


SELECT DISTINCT last_name
FROM users
WHERE x=1


db.users.distinct( 'last_name', {x: 1} )


// no helper for distinct yet in c++ driver,
// so send command manually
bo cmdResult;
bool ok = c.runCommand(
"mydb",
BSON("distinct" << "users"
<< "key" << "last_name"
<< "query" << BSON("x"<<1)),
cmdResult);
list<bo> results;
cmdResult["values"].Obj().Vals(results);


SELECT COUNT(*)
FROM users
where AGE > 30


db.users.find( { age: { $gt: 30 } } ).count()


unsigned long long n =
c.count("mydb.users", BSON("age"<<GT<<30));


UPDATE users
SET a=a+2
WHERE b='q'


db.users.update( { b: 'q' },
{ $inc: { a:2 } },
false, true)


c.update("mydb.users", QUERY("b"<<"q"),
BSON("$inc"<<BSON("a"<<2)), false, true);
// then optionally:
string err = c.getLastError();
bool ok = err.empty();


DELETE
FROM users
WHERE z="abc"


db.users.remove( { z: 'abc' } )


c.remove("mydb.users", QUERY("z"<<"abc"));
// then optionally:
string err = c.getLastError();


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: