Esempio n. 1
0
int main() {

    mongo conn[1];
    bson b;
    int res;

    if( mongo_client( conn, TEST_SERVER, 27017 ) != MONGO_OK ) {
        printf("Failed to connect");
        exit(1);
    }

    res = mongo_simple_str_command( conn, "test", "$eval",
            "for(i=0; i<100000; i++) { db.foo.find() }", &b );

    ASSERT( res == MONGO_OK );

    /* 50ms timeout */
    mongo_set_op_timeout( conn, 50 );

    ASSERT( conn->err == 0 );
    res = mongo_simple_str_command( conn, "test", "$eval",
            "for(i=0; i<100000; i++) { db.foo.find() }", &b );

    ASSERT( res == MONGO_ERROR );
    ASSERT( conn->err == MONGO_IO_ERROR );

    return 0;
}
Esempio n. 2
0
SEXP mongo_simple_command(SEXP mongo_conn, SEXP db, SEXP cmdstr, SEXP arg) {
    mongo* conn = _checkMongo(mongo_conn);
    const char* _db = CHAR(STRING_ELT(db, 0));
    const char* _cmdstr = CHAR(STRING_ELT(cmdstr, 0));
    bson out;
    int success;
    if (TYPEOF(arg) == STRSXP)
        success = (mongo_simple_str_command(conn, _db, _cmdstr, CHAR(STRING_ELT(arg, 0)), &out) == MONGO_OK);
    else
        success = (mongo_simple_int_command(conn, _db, _cmdstr, asInteger(arg), &out) == MONGO_OK);
    if (!success) {
        return R_NilValue;
    }
    SEXP ret = _mongo_bson_create(&out);
    bson_destroy(&out);
    UNPROTECT(3);
    return ret;
}
Esempio n. 3
0
MONGO_EXPORT int mongo_cmd_drop_collection( mongo *conn, const char *db, const char *collection, bson *out ) {
    return mongo_simple_str_command( conn, db, "drop", collection, out );
}