Hya星!
长话短说。
我正在使用的是什么:
我通过JSON文件每隔30分钟插入一些数据(~35Mb没什么严重的),我想添加一个自定义字段,该字段对于每次插入的每个文档都是静态的。
(实际上这是一个已经由另一台服务器生成的时间戳,不幸的是mongodb已经为它自己的内部用法保留了“timestamps”,这就是为什么我在这里)
我的代码看起来像这些
...
var toomuchJSONdata = [{
"name":"John",
"age":30,
}
{
"name":"Carl",
"age":25,
}{
"....":"....",
"....":"....",
}];
...
to-my.collection.insertMany(toomuchJSONdata)
...
那么解决问题的最佳/最简单方法是什么?或者我正朝着错误的方向前进,为每个JSON对象添加自定义“密钥”:“值”更容易也更好?像:
var toomuchJSONdata = [{
"name":"John",
"age":30,
"customkey":"customvalue"
}
顺便说一句,如何将Mongo中的数据存储为日期或时间戳? (我想存储它,因为我将来需要汇总数据) 我已经做过的事情(......现在还在做):
答案 0 :(得分:0)
TL:DR在我的情况下,我使用此代码解决了这个问题,该代码修改了我的JSON数据.insering it to MongoDB:
var jsonObject = JSON.parse(body).files;
var ts = (jsonObject[0].lastModified); //form timestamp TODO if ts updated too long reresh timer for query
if (error) {
console.log(error);
}
else {
request(jsonObject[0].url, function(error, response, body){
var MarketData = JSON.parse(body).auctions;
MarketData.map(function (MarketData) {
MarketData.lastModified = ts;
});
感谢@Paul和@stackoverYC鼓舞我。
我之所以不能通过mongoose(或其他mongodb驱动程序)使用$ aggregate,是因为" timestamp" mongodb已经保留了字段用于它自己的"内部用法"。所以我将我的新字段称为" lastModified"