forceSelection doesn't prevent typing, it just forces the user to type one of the options from the list. Perhaps that's what you meant but I just wanted to make sure we're clear on that.
With your current configuration you're allowing users to type in a totally arbitrary value. If they type in a value that isn't in the list then it won't have an id. I'm curious to know how that would work in the context of your scenario?
Apologies if you already understand this but I just want to make sure we're clear about the
queryMode setting.
queryMode refers to where the data is filtered, not where it came from originally. It's difficult to know from what you've said so far whether or not you should be using 'local' or 'remote' but it's a common mistake to use 'remote' simply because the data is being loaded from a server.
You may find these articles helpful. They don't address your case specifically but they do give an overview of some of the main config options, including working with remote data:
http://skirtlesden.com/articles/extjs-comboboxes-part-1
http://skirtlesden.com/articles/extjs-comboboxes-part-2