“MongoError:未知运算符:loopback updateall中的$ id

时间:2017-05-25 06:00:22

标签: javascript mongodb angular loopback update-all

在我的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的新手。任何帮助都会非常明显。

2 个答案:

答案 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) {

} )