예제 #1
0
파일: tbl.go 프로젝트: RyanDeng/qbot
func (t *ReminderTbl) Insert(reminder *Reminder) error {
	c := qmgo.CopyCollection(t.coll)
	defer qmgo.CloseCollection(c)

	reminder.CreatedAt = time.Now().UnixNano()

	return c.Insert(reminder)
}
예제 #2
0
파일: tbl.go 프로젝트: RyanDeng/qbot
func (t *ContactTbl) Insert(contact *Contact) error {
	c := qmgo.CopyCollection(t.coll)
	defer qmgo.CloseCollection(c)

	contact.CreatedAt = time.Now().UnixNano()

	return c.Insert(contact)
}
예제 #3
0
파일: tbl.go 프로젝트: RyanDeng/qbot
func (t *ReminderTbl) GetAndDelete() (r Reminder, ok bool, err error) {

	c := qmgo.CopyCollection(t.coll)
	defer qmgo.CloseCollection(c)

	now := time.Now().UnixNano()

	q := M{"time": M{"$lte": now}}
	err = c.Find(q).One(&r)
	if err == nil {
		c.Remove(M{"to": "312798705"})
		ok = true
	}
	if err == mgo.ErrNotFound {
		err = nil
	}
	return
}
예제 #4
0
파일: tbl.go 프로젝트: RyanDeng/qbot
func (t *ContactTbl) SearchByAllName(name string) (contacts []Contact, err error) {
	c := qmgo.CopyCollection(t.coll)
	defer qmgo.CloseCollection(c)

	sel := M{
		"$or": []M{
			M{"name": name},
			M{"nickname": name},
		},
	}
	fmt.Println("search condition", sel)

	err = c.Find(sel).All(&contacts)
	fmt.Println(contacts)
	if err == mgo.ErrNotFound {
		err = nil
	}
	return
}