MongoDB $or 查询在 mongorestore 之后对我不起作用
我运行了 mongodump,然后运行 mongorestore 将 MongoDB 数据库从一台计算机移动到另一台计算机。数据在那里,我可以查询它们(第一个查询)并获取结果,但在查询中使用 $or 不会产生任何结果(第二个查询)。
db.employees.find( { 'name.first' : 'Joe' })
-- vs --
db.employees.find( { $or : [ { 'name.first' : 'Joe' }]})
据我所知,索引是从 system.indexes.bson 重新创建的,有什么想法是错误的吗?
索引:
> db.employees.getIndexes()
[
{
"name" : "_id_",
"ns" : "data.demployees",
"key" : {
"_id" : 1
}
}
]
- 原始服务器:MongoDB 1.6.5 64b
- 新服务器:MongoDB 1.4.4 32b
我是通过控制台运行查询,而不是pymongo。
I ran a mongodump and then mongorestore to move a MongoDB database from one computer to another. The data are there, I can query them (first query) and get results but using $or in a query produces no results (second query).
db.employees.find( { 'name.first' : 'Joe' })
-- vs --
db.employees.find( { $or : [ { 'name.first' : 'Joe' }]})
As far as I can tell, indexes have been recreated from system.indexes.bson, any ideas what is wrong?
indexes:
> db.employees.getIndexes()
[
{
"name" : "_id_",
"ns" : "data.demployees",
"key" : {
"_id" : 1
}
}
]
- original server: MongoDB 1.6.5 64b
- new server: MongoDB 1.4.4 32b
I was running the query through the console, not pymongo.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
为了真正提供帮助,我们需要一些信息:
db.employees.getIndexes()
输出的较小的数据集
尝试将一小部分
员工
复制到新集合中并运行相同的查询:基本上,让我们尝试排除数据损坏的情况。然后,让我们尝试隔离该版本,看看这是否是一个已知的错误。
仔细检查数据类型
确保数据类型正确。
这是一个错误吗?
这可能是一个错误,但如果是,那么该错误应该很容易重现。一旦您仔细检查系统是否行为不正确,就可以重现此问题,以便至少可以提交错误。
To really help here, we need a few pieces of information:
db.employees.getIndexes()
Smaller Data Set
Try copying out a small set of the
employees
to a new collection and run the same queries:Basically, let's try to rule out corruption of data. Then let's try to isolate the version and see if this is a known bug.
Double-check Data Types
Ensure that the data types are correct.
Is this a bug?
This could be a bug, but if it is, the bug should be trivial to reproduce. Once you've double-checked that the system is behaving incorrectly, it's time to repro this so that you can at least file a bug.
pymongo 需要在特殊运算符周围加上引号——你尝试过吗?
pymongo requires quotes around the special operators-- have you tried this?