【问题标题】:MongoDB "imported data" not getting retrieved from PHPMongoDB“导入的数据”没有从 PHP 中检索到
【发布时间】:2017-02-21 16:03:29
【问题描述】:

我正在将一个 CSV 文件导入我的 Mongo 集合中,并且它已成功导入。 这是我的 Windows 命令提示符执行:

mongoimport --host localhost --db testing --collection test1 --type csv --headerline --file Desktop\try.csv
2016-10-12T23:25:10.464+0530    connected to: localhost
2016-10-12T23:25:10.561+0530    imported 1 document

我的收藏显示如下:

> db.test1.find().pretty()
{
        "_id" : ObjectId("57fe78fece1854fc74ad37f0"),
        "class" : "7th",
        "school_id" : 1
}
{
        "_id" : ObjectId("57fe7975912ee1426d6d94c6"),
        "school_id" : "1",
        "class" : "5th"
}
{
        "_id" : ObjectId("57fe7980912ee1426d6d94c7"),
        "school_id" : "1",
        "class" : "6th"
}

这里我只导入了第 7 类的文档。 第 5 类和第 6 类的文档是通过 Mongo Shell 插入的,没有导入。

现在在 PHP 中,当我尝试检索这些文档并显示每个文档的“类”时,我只能显示通过 Mongo Shell 插入的第 5 和第 6 类。 不显示导入的文档数据,即第 7 类。

我用“writeConcern”尝试了一些东西:

mongoimport --host localhost --db testing --collection test1 --type csv --headerline --file Desktop\try.csv --writeConcern {w:"majority"}

这是否与 MongoDB 的读取或写入问题有关? 还是关于 PHP Mongo 驱动的?

我有很多数据,无法通过 shell 插入。

(我正在使用 XAMPP Windows)

【问题讨论】:

  • 尝试使用绝对路径的 FORWARD 斜线,C:/Users/username/Desktop/try.csv
  • 试过了,虽然没用。但是我将我的 CSV 文件转换为 JSON 并且它有效。我可以在我的网页上检索它。不知道为什么它会忽略来自 CSV 的数据。
  • 嗨,请查看此stackoverflow.com/a/17265858,如果您想尝试使用 csv 选项,此stackoverflow.com/a/28463511 可能会对您有所帮助。
  • 谢谢,我之前已经看过了。实际上问题不在于我的导入数据。我可以“找到”我从我的 mongo shell 导入的所有数据,但是当我在 php 中检索它时,为了显示,php 只是忽略了我通过 CSV 导入的数据。 (我正在使用 XAMPP Windows)

标签: php mongodb csv mongoimport php-mongodb


【解决方案1】:

数据之间存在差异。 school_id 是 7th 的数字和 5th 和 6th 的字符串。这是否会导致您的查询出现问题?

【讨论】:

  • 如果这不是问题,请发布您的 php 代码。
  • 这就是问题所在,是的,谢谢。但是找不到将数字作为字符串导入的方法。双引号不起作用。我目前正在运行更新命令来更改类型。有没有直接的办法?
  • 无法将其作为字符串导入(请参阅此答案 stackoverflow.com/a/10303303/266375 )。您必须编写一些额外的代码,我建议在导入后编辑数据库。
猜你喜欢
  • 2021-07-22
  • 2019-12-26
  • 2016-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
相关资源
最近更新 更多