mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-04 12:07:51 +00:00
A first attempt at fixing the MongoDB modules.
This commit is contained in:
@@ -58,7 +58,7 @@ proc open*(host: string = defaultHost, port: int = defaultPort): TDbConn {.
|
||||
## be established.
|
||||
init(result)
|
||||
|
||||
let x = connect(result, host, port.cint)
|
||||
let x = client(result, host, port.cint)
|
||||
if x != 0'i32:
|
||||
dbError(result, "cannot open: " & host)
|
||||
|
||||
@@ -119,7 +119,7 @@ proc insertId*(db: var TDbConn, namespace: string, data: PJsonNode): TOid {.
|
||||
## the generated OID for the ``_id`` field.
|
||||
result = genOid()
|
||||
var x = jsonToBSon(data, result)
|
||||
insert(db, namespace, x)
|
||||
insert(db, namespace, x, nil)
|
||||
destroy(x)
|
||||
|
||||
proc insert*(db: var TDbConn, namespace: string, data: PJsonNode) {.
|
||||
|
||||
@@ -109,11 +109,12 @@ type
|
||||
cur*: cstring
|
||||
dataSize*: cint
|
||||
finished*: TBsonBool
|
||||
stack*: array[0..32 - 1, cint]
|
||||
ownsData*: TBsonBool
|
||||
err*: cint
|
||||
stackSize*: cint
|
||||
stackPos*: cint
|
||||
err*: cint ## Bitfield representing errors or warnings on this buffer
|
||||
errstr*: cstring ## A string representation of the most recent error
|
||||
## or warning.
|
||||
stackPtr*: ptr csize
|
||||
stack*: array[0..32 - 1, csize]
|
||||
|
||||
TDate* = int64
|
||||
|
||||
@@ -141,6 +142,7 @@ proc print*(TBson: cstring, depth: cint) {.stdcall,
|
||||
importc: "bson_print_raw", dynlib: bsondll.}
|
||||
## Print a string representation of a BSON object up to `depth`.
|
||||
|
||||
|
||||
proc data*(b: var TBson): cstring{.stdcall, importc: "bson_data",
|
||||
dynlib: bsondll.}
|
||||
## Return a pointer to the raw buffer stored by this bson object.
|
||||
@@ -590,19 +592,30 @@ type
|
||||
hosts*: ptr THostPort ## List of host/ports given by the replica set
|
||||
name*: cstring ## Name of the replica set.
|
||||
primary_connected*: TBsonBool ## Primary node connection status.
|
||||
|
||||
TWriteConcern*{.pure, final.} = object ## mongo_write_concern
|
||||
w*: cint
|
||||
wtimeout*: cint
|
||||
j*: cint
|
||||
fsync*: cint
|
||||
mode*: cstring
|
||||
cmd*: TBSon
|
||||
|
||||
TMongo*{.pure, final.} = object ## mongo
|
||||
primary*: ptr THostPort ## Primary connection info.
|
||||
replset*: ptr TReplSet ## replset object if connected to a replica set.
|
||||
sock*: cint ## Socket file descriptor.
|
||||
flags*: cint ## Flags on this connection object.
|
||||
conn_timeout_ms*: cint ## Connection timeout in milliseconds.
|
||||
op_timeout_ms*: cint ## Read and write timeout in milliseconds.
|
||||
connected*: TBsonBool ## Connection status.
|
||||
err*: TError ## Most recent driver error code.
|
||||
errstr*: array[0..128 - 1, char] ## String version of most recent driver error code.
|
||||
lasterrcode*: cint ## getlasterror code given by the server on error.
|
||||
lasterrstr*: cstring ## getlasterror string generated by server.
|
||||
primary*: ptr THostPort ## Primary connection info.
|
||||
replset*: ptr TReplSet ## replset object if connected to a replica set.
|
||||
sock*: cint ## Socket file descriptor.
|
||||
flags*: cint ## Flags on this connection object.
|
||||
conn_timeout_ms*: cint ## Connection timeout in milliseconds.
|
||||
op_timeout_ms*: cint ## Read and write timeout in milliseconds.
|
||||
max_bson_size*: cint ## Largest BSON object allowed on this connection.
|
||||
connected*: TBsonBool ## Connection status.
|
||||
write_concern*: TWriteConcern ## The default write concern.
|
||||
err*: TError ## Most recent driver error code.
|
||||
errcode*: cint ## Most recent errno or WSAGetLastError().
|
||||
errstr*: array[0..128 - 1, char] ## String version of most recent driver error code.
|
||||
lasterrcode*: cint ## getlasterror code given by the server on error.
|
||||
lasterrstr*: array[0..128 - 1, char] ## getlasterror string generated by server.
|
||||
|
||||
TCursor*{.pure, final.} = object ## cursor
|
||||
reply*: ptr TReply ## reply is owned by cursor
|
||||
@@ -654,7 +667,11 @@ proc init*(conn: var TMongo){.stdcall, importc: "mongo_init", dynlib: mongodll.}
|
||||
|
||||
proc connect*(conn: var TMongo, host: cstring = defaultHost,
|
||||
port: cint = defaultPort): cint {.stdcall,
|
||||
importc: "mongo_connect", dynlib: mongodll.}
|
||||
importc: "mongo_connect", dynlib: mongodll, deprecated.}
|
||||
## Connect to a single MongoDB server.
|
||||
proc client*(conn: var TMongo, host: cstring = defaultHost,
|
||||
port: cint = defaultPort): cint {.stdcall,
|
||||
importc: "mongo_client", dynlib: mongodll.}
|
||||
## Connect to a single MongoDB server.
|
||||
|
||||
proc replsetInit*(conn: var TMongo, name: cstring){.stdcall,
|
||||
@@ -714,7 +731,8 @@ proc destroy*(conn: var TMongo){.stdcall, importc: "mongo_destroy",
|
||||
## You must always call this function when finished with the connection
|
||||
## object.
|
||||
|
||||
proc insert*(conn: var TMongo, ns: cstring, data: var TBson): cint{.stdcall,
|
||||
proc insert*(conn: var TMongo, ns: cstring, data: var TBson,
|
||||
custom_write_concern: ptr TWriteConcern): cint{.stdcall,
|
||||
importc: "mongo_insert", dynlib: mongodll, discardable.}
|
||||
## Insert a BSON document into a MongoDB server. This function
|
||||
## will fail if the supplied BSON struct is not UTF-8 or if
|
||||
|
||||
Reference in New Issue
Block a user