簡體   English   中英

在mongorestore之后MongoDB $或查詢不適用於我

[英]MongoDB $or query not working for me after mongorestore

我運行了mongodump然后mongorestore將MongoDB數據庫從一台計算機移動到另一台計算機。 數據在那里,我可以查詢它們(第一次查詢)並獲得結果,但使用$或在查詢中不產生結果(第二次查詢)。

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。

為了真正幫助我們,我們需要一些信息:

  • 版本號(MongoDB和pymongo,服務器和新計算機)
  • db.employees.getIndexes()輸出
  • 你可以在較小的數據集上運行測試嗎? (見下文)
  • 你能仔細檢查數據類型嗎?

較小的數據集

嘗試將一小部分employees復制到新集合並運行相同的查詢:

db.employees.find().limit(100).forEach( function(x) { db.employees_test.insert(x); } )

基本上,讓我們試着排除數據的破壞。 然后讓我們嘗試隔離版本,看看這是否是一個已知的bug。

仔細檢查數據類型

確保數據類型正確。

這是一個錯誤嗎?

這可能是一個錯誤,但如果是這樣,那么錯誤應該很容易重現。 一旦你仔細檢查了系統的行為是否正常,就應該重新調試它,這樣你至少可以提交一個bug。

pymongo需要特殊操作員的報價 - 你試過這個嗎?

db.employees.find( { '$or' : [ { 'name.first' : 'Joe' }]})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM