if (movies[i] == movie._id) { //… } movies里面装的是movie的id,然后我想做个比较,如果匹配的话可以执行某些操作,但是一直进不到if语句里面去,怀疑是object类型比较为false,求解怎么办
if (movie._id.equals(movies[i])) {
//...
}
感觉你这个不正确吧。_id 是字符串类型的,没有 .equals
方法。而 movie.id.equals 倒是存在的。
不知道楼主的 movies 里面装的是什么类型。但有一招肯定行,就是 String(movies[i]) === String(movie._id)
那个 _id 是 object,转化成字符串比较就好了。
可以用
_id + ''
//if movie like { { "_id" : ObjectId("5569b95677a7277b5618dd31"),"title":"侏罗纪公园"}
if(movie._id =="5569b95677a7277b5618dd31"){
...do
}
movies[i].toString() == movie._id.toString()
也行吧
@alsotang 脑昏了没看清, .equals
是mongoose 才提供的方法,没仔细看问的是mongodb
@alsotang 就是转成字符串比较是吧?我想过,我还以为mongodb提供了标准的id比较的方法呢,看来是没有了
@dca 我是用的mongoose驱动的mongodb
@hetianqi 应该有的,这要翻文档了
@alsotang 好吧。那就暂时先用toString来比较了
@dca equals能用的,那么说这是ObjectId提供的方法还是mongoose提供的呢?