Mongoimport の機能は非常に限られています。このような状況では、csv ファイルを 1 行ずつ解析し、希望どおりにドキュメントを作成するカスタム スクリプトを作成することを公式に推奨しています。
地理空間インデックスを作成するには、地理空間インデックスのドキュメントの上部にある「いくつかの例:」セクションで説明されているように、位置情報を同じキーの下に格納する必要があります: http://www.mongodb.org/ display/DOCS/Geospatial+Indexing
.csv ファイルからデータを直接インポートすると、次のようなドキュメントが作成されます。
doc1.csv:
place, lat, lon
Place 1,73.992964,40.739037
$ ./mongoimport -d test -c a --type csv --headerline --file doc1.csv
> db.a.find()
{ "_id" : ObjectId("4f7602d70c873ff911798fd3"), "place" : "Place 1", "lat" : 73.992964, "lon" : 40.739037 }
残念ながら、上記のドキュメントに地理空間インデックスを作成することはできません。
実験として、あなたが説明した 2 番目の形式のデータを含む .csv ファイルをインポートしようとしましたが、成功しませんでした。
doc2.csv:
place, loc
Place1,[-73.992964,40.739037]
$ ./mongoimport -d test -c b --type csv --headerline --file doc2.csv
> db.b.find()
{ "_id" : ObjectId("4f7602e40c873ff911798fd4"), "place" : "Place1", "loc" : "[-73.992964", "field2" : "40.739037]" }
さらなる実験として、.csv ドキュメントを json 形式に変更し、それをインポートしたところ、うまくいくようでした。
doc3.json:
{name:"Place1" , loc:[-73.992964,40.739037]}
$ ./mongoimport -d test -c c --type json --file doc3.json
> db.c.find()
{ "_id" : ObjectId("4f7604570c873ff911798fd5"), "name" : "Place1", "loc" : [ -73.992964, 40.739037 ] }
ただし、すべての .csv ファイルを .json 形式に変換するスクリプトを作成している場合は、.csv ファイルをコレクションに直接インポートするカスタム スクリプトを作成する方がよいでしょう。