Mongodb:从csv文件导入数据后,无法使用第一个键进行查询

时间:2017-04-05 06:17:55

标签: mongodb csv mongodb-query

这对我来说很奇怪。我已将csv数据导入到我的mongodb集合中,我无法使用其第一个密钥进行查询。它允许我使用文档中除第一个键之外的任何其他键进行查询。这是我的样本数据集。

{ "_id" : ObjectId("58e488f2eeac8616db281a7b"), "event_name" : "pageload", "id" : 1658, "date" : 1451610622, "Browser" : "Chrome", "Device" : "Computer", "OS" : "Mac OS", "Country" : "Singapore", "City" : "Singapore", "Referrer" : "blog", "utm_source" : "", "utm_medium" : "", "utm_campaign" : "", "page_name" : "category", "firstvisit_date" : 1451610618, "item_name" : "", "quantity" : "", "item_price" : "", "bill_amount" : "", "fail_reason" : "" }
{ "_id" : ObjectId("58e488f2eeac8616db281a7c"), "event_name" : "pageload", "id" : 1658, "date" : 1451610624, "Browser" : "Chrome", "Device" : "Computer", "OS" : "Mac OS", "Country" : "Singapore", "City" : "Singapore", "Referrer" : "category", "utm_source" : "", "utm_medium" : "", "utm_campaign" : "", "page_name" : "product", "firstvisit_date" : 1451610618, "item_name" : "", "quantity" : "", "item_price" : "", "bill_amount" : "", "fail_reason" : "" }
{ "_id" : ObjectId("58e488f2eeac8616db281a7d"), "event_name" : "pageload", "id" : 4391, "date" : 1451611043, "Browser" : "Explorer", "Device" : "Mobile", "OS" : "iOS", "Country" : "Indonesia", "City" : "Medan", "Referrer" : "Google", "utm_source" : "Google", "utm_medium" : "cpc", "utm_campaign" : "g2", "page_name" : "homepage", "firstvisit_date" : "", "item_name" : "", "quantity" : "", "item_price" : "", "bill_amount" : "", "fail_reason" : "" }
{ "_id" : ObjectId("58e488f2eeac8616db281a7e"), "event_name" : "pageload", "id" : 4391, "date" : 1451611045, "Browser" : "Explorer", "Device" : "Mobile", "OS" : "iOS", "Country" : "Indonesia", "City" : "Medan", "Referrer" : "homepage", "utm_source" : "", "utm_medium" : "", "utm_campaign" : "", "page_name" : "blog", "firstvisit_date" : 1451611043, "item_name" : "", "quantity" : "", "item_price" : "", "bill_amount" : "", "fail_reason" : "" }

当我查询

  

db.dataset.find({event_name:' pageload'})

它总是给出空的结果。但是,如果我手动插入一些数据,我得到的结果。我试图用下面的命令重命名键

  
    

db.dataset.update({},{$ rename:{" event_name":" event"}},false,true);

  
     

WriteResult({" nMatched":2001," nUpserted":0," nModified":1})

它正确显示nMatched但又只更新我手动插入的数据,而不是其他数据。对我来说很奇怪,任何已知问题?

1 个答案:

答案 0 :(得分:1)

您可能遇到TOOLS-879错误,该错误已在最新的3.2和3.4版本中修复。