你可以用不同的密钥使用MongoDB $和运算符吗?

时间:2012-01-07 04:45:26

标签: mongodb

看起来这两个查询应该相同但结果却不一样。为什么带有$和运算符的第二个findOne查询与第一个查询相同?

$ mongo
MongoDB shell version: 2.0.2
connecting to: test
> db.test.drop()
true
> db.test.insert({ x: 1, y: 2 })
> db.test.findOne({ x: 1, y: 2 })
{ "_id" : ObjectId("4f0885cd61d25fd4a5813ae2"), "x" : 1, "y" : 2 }
> db.test.findOne({ $and: [{ x: 1 }, { y: 2 }] })
null

我在Mac OS X 10.6.8上使用通过Homebrew安装的MongoDB 2.0.2

1 个答案:

答案 0 :(得分:1)

没关系,这是因为我最初通过自制软件安装mongodb 1.8.2,然后我将其升级到2.0.2,但我没有将新的plist文件复制到位,所以launchctl仍然启动1.8。 2。您可以看到这一点,因为当您通过shell连接时:

$ mongo
MongoDB shell version: 2.0.2

这就是说你使用的是客户端版本2.0.2。但如果你运行这个:

>  db.serverStatus()

在输出的某处你会看到:

"version" : "2.0.2"

服务器运行的版本是哪个。它之前说1.8.2,现在它说2.0.2。