跳到主要内容
CNode

mongodb 中的ObjectId 怎么做判等啊

问答
Hhetianqi发布于 11 年前最后回复 11 年前
1291540

if (movies[i] == movie._id) { //... } movies里面装的是movie的id,然后我想做个比较,如果匹配的话可以执行某些操作,但是一直进不到if语句里面去,怀疑是object类型比较为false,求解怎么办

查看回复

回复 (12)

H
hetianqi#1211 年前
引用 dca

@dca equals能用的,那么说这是ObjectId提供的方法还是mongoose提供的呢?

H
hetianqi#1111 年前
引用 alsotang@hetianqi 应该有的,这要翻文档了

@alsotang 好吧。那就暂时先用toString来比较了

H
hetianqi#811 年前
引用 alsotang@dca 感觉你这个不正确吧。\ id 是字符串类型的,没有 .equals 方法。而 movie.id.equals 倒是存在的。 不知道楼主的 movies 里面装的是什么类型。但有一招肯...

@alsotang 就是转成字符串比较是吧?我想过,我还以为mongodb提供了标准的id比较的方法呢,看来是没有了

D
dca#711 年前

@alsotang 脑昏了没看清, .equals 是mongoose 才提供的方法,没仔细看问的是mongodb

2
20082496#611 年前

movies[i].toString() == movie._id.toString()也行吧

N
njaulj#511 年前
//if movie like { { "_id" : ObjectId("5569b95677a7277b5618dd31"),"title":"侏罗纪公园"}
if(movie._id =="5569b95677a7277b5618dd31"){
	...do
}
L
leapon#411 年前

可以用

_id + ''
L
leapon#311 年前

那个 _id 是 object,转化成字符串比较就好了。

A
alsotang#211 年前
引用 dca

@dca

感觉你这个不正确吧。_id 是字符串类型的,没有 .equals 方法。而 movie.id.equals 倒是存在的。

不知道楼主的 movies 里面装的是什么类型。但有一招肯定行,就是 String(movies[i]) === String(movie._id)

D
dca#111 年前
if (movie._id.equals(movies[i])) {
  //...
}

参与回复

登录后即可参与回复。登录