storm icon indicating copy to clipboard operation
storm copied to clipboard

idea: add a "sliceindex" tag

Open tgirod opened this issue 3 years ago • 0 comments

As it is, one can add a index tag to a slice field, and the whole slice will be used as a key in the index - which is expected, but not very useful. It would be nice to have a sliceindex tag which build an index where each value of the slice is inserted in the index.

type Post struct {
    ID int `storm:"increment"`
    Tags []string{} `storm:"sliceindex"`
    Text string
}

// db contains several entries with various tags ...

// returns posts which contain the tag "foo"
var foo []Post
db.Find("Tags", "foo", &foo)

// returns posts which contain the tags "foo" and "bar"
var fooBar []Post
db.Find("Tags", []string{"foo", "bar"})

Well, I guess it is already possible to do just that with a separate bucket associating Tags and post IDs, but I think this would make what I see as a very common use case much easier to do.

tgirod avatar Mar 26 '21 10:03 tgirod