我正在尝试在node中将一个JSON文件导入到MongoDB中。这是我的操作:
db.open(function(err, db) {
if(!err) {
db.collection('orgs', {safe: true}, function(err, collection) {
if (err) {
console.log("The 'orgs' collection doesn't exist. Creating it with sample data...");
db.collection('orgs', function(err, collection) {
orgs = require("../data/orgs.json");
collection.insert(orgs, {safe:true}, function(err, result) {});
});
}
});
}
});
请注意,NodeJS可以自动将JSON导入为JSON格式,这很好,但是JSON不能处理像ISODate或ObjectID这样的对象。这是我正在尝试导入的JSON数据的片段:
./data/orgs.json:
{
"stub": "apple",
"name":"Apple, Inc.",
"timezone": "America/New_York",
"currency": "USD",
"plans": [
{"planId":1, "dtStart": {"$date":"2012-12-07 12:34:56"}},
{"planId":0, "dtStart": {"$date":"2012-12-05 23:45:02"}, "dtEnd": {"$date":"2012-12-07 12:34:56"}}
]
}
我正在使用Node的mongodb原生驱动程序。
我尝试使用日期的整数表示,但它没有起作用。
有没有一种方法可以在JSON中表示ISODate和ObjectID字段,以便MongoDB可以识别?
import ejson from 'mongodb-extended-json'; import animals from './fixtures/Animals.json'; ejson.deserialize(animals)
其中,json 数据如下:{ "_id" : { "$oid" : "54ebb..." }, "created" : { "$date" : "2015-02-23T23:19:54.674+0000" }}
- malix