作为升级脚本的一部分,我想用来$where
查找 id 与其中一个字段匹配的文档。我知道这很慢,因为它是用光标完成的,但这对我来说没问题;我只会运行一次。但我无法让它工作:
> db.things.drop()
true
> stuff = {}
{ }
> db.things.save(stuff)
> stuff.original_id = stuff._id
ObjectId("4ff5f9f97fadec5abb7b5392")
> db.things.save(stuff)
//why doesn't this return anything?
> db.things.find({$where: "this._id == this.original_id"})
//interstingly, this works fine
> db.things.find({$where: "this._id == this._id"})
{ "_id" : ObjectId("4ff5f9f97fadec5abb7b5392"), "original_id" : ObjectId("4ff5f9f97fadec5abb7b5392") }
这里有什么问题?为什么我不能_id
比较original_id
?