我正在使用 grails2.4.4 和 mongodb 插件版本 3.0.3。我在获取域对象的结果时遇到了问题。我正在使用以下代码:
我的域名:
Employee{
ObjectId id
String name
}
我有 ids 列表,使用下面的代码来获取员工:(请注意,下面的数据只是为了代表我的问题。在实时,我的 ids 是随机的,所以我不能使用排序,但我只想要结果输入顺序。)
def idsList=[new ObjectId("2001"), new ObjectId("2002"), new ObjectId("2003")]
def results=Employee.findAllByIdInList(idsList)
预期结果:
[Employee@2001,Employee@2002,Employee@2003]
实际结果(不按顺序):
[Employee@2002, Employee@2003 , Employee@2001] or sometimes
[Employee@2003, Employee@2001 , Employee@2002]
现在我这样做是为了按所需顺序获得输出:
def results=[]
for(id in idsList){
def emp=Employee.findById(id)
results<<emp
}
但我想用单个调用(findAllBy*InList)来做到这一点,而不需要迭代对象。谁能告诉我如何按输入ID的顺序获得结果?