我正在测试 MongoDB,这里有一个让我大吃一惊的例子:
> function compare(a,b) { return (a==b); }
然后列出我的收藏:
> db.myCol.find()
{ "_id:" : ObjectId("..."), "name" : "mongo" }
{ "_id:" : ObjectId("..."), "x" : 3 }
{ "_id:" : ObjectId("..."), "name" : "mongo", "notName" : "wow" }
和 - 完全确定:
> compare('mongo','mongo')
true
和奇怪的部分:
> db.myCol.find( { $where : "compare(this.name,'mongo')" } )
{ "_id:" : ObjectId("..."), "x" : 3 }
> db.myCol.find( { $where : "this.name=='mongo'" } )
{ "_id:" : ObjectId("..."), "name" : "mongo" }
{ "_id:" : ObjectId("..."), "name" : "mongo", "notName" : "wow" }
我希望查询具有完全相反的设置。