-
Notifications
You must be signed in to change notification settings - Fork 2
/
db.coffee
41 lines (33 loc) · 1.14 KB
/
db.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
mongodb = require 'mongodb'
utils = require('./utils.coffee').utils
class Db
constructor: (@host, @port, @database, @collection, open = true) ->
server = new mongodb.Server @host, @port, {auto_reconnect: true}
@db = new mongodb.Db @database, server
this.open() if open
open: (callback = null) ->
@db.open (err, db) =>
utils.dbError "#{err} [openDB]" if err
db.createCollection @collection, (err, collection) ->
utils.dbError "#{err} [createCollection]" if err
callback collection, db if callback
insert: (item) ->
try
this.getCollection().insert item, (err, docs) =>
utils.dbError "#{err} [insert]" if err
console.log docs[0]
catch error
console.error error
return
getCollection: () ->
@db.collection(@collection)
createIndexes: () ->
collection = this.getCollection()
collection.ensureIndex({hostname: 1})
collection.ensureIndex({app: 1})
collection.ensureIndex({level: 1})
collection.ensureIndex({time: -1})
collection.ensureIndex({dupid: 1})
find: (conditions = {}) ->
this.getCollection().find conditions
exports.db = Db