在我的angular2项目中,我需要使用相同的数据更新多个ID。我有这样的函数:
import { AgentApi } from '../../../../sdk/services/custom/Agent';
@Injectable()
export class AgentService {
constructor(private agentApi: AgentApi) { }
updateAgentShiftDetails(idArray, name) {
var dataObj: any = {};
dataObj.id = {
'inq': idArray ------> id array contains ids like this:["590b095a0d271a0cb8e859sf", "590c63cee3adb75a19e84e56"]
};
return this.agentApi.updateAll({
where: {
'id': dataObj
}
}, {
'name': name
});
};
}
在我的回复中我得到了这样的错误:
Object {statusCode: 500, name: "MongoError", message: "unknown operator: $id", ok: 0, errmsg: "unknown operator: $id"…}
500 (Internal Server Error)
我该如何解决这个问题?我正在使用loopback和mongodb。我是angular2的新手。任何帮助都会非常明显。
答案 0 :(得分:1)
你应该避免在这里使用 where
import {
AgentApi
} from '../../../../sdk/services/custom/Agent';
@Injectable()
export class AgentService {
constructor(private agentApi: AgentApi) {}
updateAgentShiftDetails(idArray, name) {
var dataObj: any = {};
dataObj.id = {
'inq': idArray
};
return this.agentApi.updateAll(dataObj, {
'name': name
});
};
}
答案 1 :(得分:0)
抱歉,我没有足够的声誉来添加评论。
为什么不在这种情况下使用$in
?
this.agentApi.update( { _id: { $in: idArray } }, { name: name }, function (err, user) {
} )