【发布时间】:2017-03-08 13:32:58
【问题描述】:
我无法访问 mongodb 机器。所以我无法运行 mongoexport 命令。因此,我试图将我的查询输出转换为 csv 格式。
RoboMongo 中的查询
var cursor = db.getCollection('fineProduct').find
(
{"inbuilt.bookingReference" : { $exists : true }} ,
{"_id":1,
"Reference":1,
"inbuilt.bookingReference":1,
"inbuilt.status":1,
"purchase.fineSegments.departureDatetime":1,
"purchase.fineSegments.arrivalDatetime":1,
"purchase.fineSegments.product.carriage.type":1,
"purchase.fineSegments.pricing.amount":1,
"purchase.fineSegments.pricing.currency":1
}
)
while (cursor.hasNext()) {
var record = cursor.next();
var output = "";
for (var i in record) {
output += record[i] + ",";
};
output = output.substring(0, output.length - 1);
print(output);
}
查找查询输出(JSON 格式)- 此处仅提供 1 行
{
"_id" : 10,
"inbuilt" : {
"status" : "VALIDATED",
"bookingReference" : "2015900051789"
},
"purchase" : [
{
"fineSegments" : [
{
"departureDatetime" : ISODate("2015-09-30T18:35:00.000Z"),
"arrivalDatetime" : ISODate("2015-09-30T19:17:00.000Z"),
"product" : {
"carriage" : {
"type" : "House"
}
},
"pricing" : {
"amount" : "339.00",
"currency" : "INR"
}
}
]
}
],
"vendorReference" : "FIRE"
}
输出(CSV)
10,[object BSON],[object BSON],FIRE
12,[object BSON],[object BSON],FIRE
13,[object BSON],[object BSON],FIRE
14,[object BSON],[object BSON],FIRE
15,[object BSON],[object BSON],FIRE
17,[object BSON],[object BSON],FIRE
18,[object BSON],[object BSON],FIRE
19,[object BSON],[object BSON],FIRE
20,[object BSON],[object BSON],FIRE
有没有办法让 [Object BSON] 变成字符串?
Mongo db 版本 3.0.8 | robomongo 版本 Robomongo 0.9.0-RC8
【问题讨论】:
-
mongoexport 通过网络工作。如果你可以用 robomongo 连接到 mongodb,你应该可以用 mongoexport 连接到它。
-
我无法访问已安装的机器(通过 ssh 进入盒子)!但是 robomongo 可以通过端口访问数据库,因为网络团队启用了 IP:PORT :)
-
你不需要 ssh。在使用相同 ip:port 选项运行 robomongo 的同一台机器上运行 mongoexport。
-
哦..我会试试的。