func migrate(req *web.Request) { err := db.Query("select id, message, date from entries") if err != nil { panic(err) } result, err := db.StoreResult() if err != nil { panic(err) } itemIndex := make(map[string]Item, result.RowCount()) for _, entry_row := range result.FetchRows() { id := string([]uint8(entry_row[0].([]uint8))) message := string([]uint8(entry_row[1].([]uint8))) when := entry_row[2].(int64) itemIndex[id] = Item{message, "", make([]string, 0), bson.MongoTimestamp(when)} } db.FreeResult() for id, item := range itemIndex { tags := getTags(id) // log.Println(id, tags) // item.Tags = tags // itemIndex[id] = item createItem(item.Message, "", tags, int64(item.When)) } log.Println(itemIndex) w := req.Respond(web.StatusOK, web.HeaderContentType, "text/html; charset=\"utf-8\"") io.WriteString(w, "OK") }
func createItem(Message, Extra string, Tags []string, When int64) { c := session.DB("gobook").C("items") c_err := c.Insert(&Item{Message, Extra, Tags, bson.MongoTimestamp(When)}) if c_err != nil { panic(c_err) } }
{bson.M{"_": bson.Timestamp(258e6)}, // Note the NS <=> MS conversion. "\x09_\x00\x02\x01\x00\x00\x00\x00\x00\x00"}, {bson.M{"_": nil}, "\x0A_\x00"}, {bson.M{"_": bson.RegEx{"ab", "cd"}}, "\x0B_\x00ab\x00cd\x00"}, {bson.M{"_": bson.JS{"code", nil}}, "\x0D_\x00\x05\x00\x00\x00code\x00"}, {bson.M{"_": bson.Symbol("sym")}, "\x0E_\x00\x04\x00\x00\x00sym\x00"}, {bson.M{"_": bson.JS{"code", bson.M{"": nil}}}, "\x0F_\x00\x14\x00\x00\x00\x05\x00\x00\x00code\x00" + "\x07\x00\x00\x00\x0A\x00\x00"}, {bson.M{"_": 258}, "\x10_\x00\x02\x01\x00\x00"}, {bson.M{"_": bson.MongoTimestamp(258)}, "\x11_\x00\x02\x01\x00\x00\x00\x00\x00\x00"}, {bson.M{"_": int64(258)}, "\x12_\x00\x02\x01\x00\x00\x00\x00\x00\x00"}, {bson.M{"_": int64(258 << 32)}, "\x12_\x00\x00\x00\x00\x00\x02\x01\x00\x00"}, {bson.M{"_": bson.MaxKey}, "\x7F_\x00"}, {bson.M{"_": bson.MinKey}, "\xFF_\x00"}, } func (s *S) TestMarshalAllItems(c *C) { for i, item := range allItems { data, err := bson.Marshal(item.obj) c.Assert(err, IsNil)