【问题标题】:how to import json file having nested json array without keys into mongodb using nodejs如何使用nodejs将没有键的嵌套json数组的json文件导入mongodb
【发布时间】:2016-08-31 01:36:48
【问题描述】:

我是 Mongo 的新手,想用没有键的嵌套 json 数组导入 json 文件,但我不知道如何解析这种格式,然后导入到 mongodb。让我解释一下-->

这是我从 PDF 文件转换而来的 Json 文件:

[  
   [  
      "S. No.",
      "Bank Name",
      "First 4 Letters of ",
      "IFSC",
      "Short Code",
      "Multimodal Code"
   ],
   [  
      "1",
      "Abhyudaya Co-op Bank",
      "ABHY",
      "ACB",
      "*99*87#"
   ],
   [  
      "2",
      "Allahabad Bank",
      "ALLA",
      "ALB",
      "*99*54#"
   ],
   [  
      "3",
      "Andhra Bank",
      "ANDB",
      "ANB",
      "*99*59#"
   ],
   [  
      "4",
      "Apna Sahakari Bank",
      "ASBL",
      "APN",
      "*99*85#"
   ],
   [  
      "5",
      "Axis Bank",
      "UTIB",
      "AXB",
      "*99*45#"
   ]
]

现在我想使用 node.js 直接导入我的 mongodb 期望第一个不敬的数组:

[  
      "S. No.",
      "Bank Name",
      "First 4 Letters of ",
      "IFSC",
      "Short Code",
      "Multimodal Code"
 ]

好的,所以在 mongodb 中存储数据后,我想要查找查询的结果,如下所示:

{“banks”: [ 
 {“name”: “Abhyudaya Co-op Bank”,  “ifsc”: “ABHY”, “sc”: “ACB”},
 {“name”: “Allahabad Bank”,  “ifsc”: “ALLA”, “sc”: “ALB”}, 
 {“name”: “Andhra Bank”,  “ifsc”: “ANDB”, “sc”: “ANB”},
 {“name”: “Apna Sahakari Bank”,  “ifsc”: “ASBL”, “sc”: “APN”},
 {“name”: “Axis Bank”,  “ifsc”: “UTIB”, “sc”: “AXB”}
 ]}

请帮助我使用 node.js 代码或查询以在 mongo 中导入此文件。

【问题讨论】:

    标签: arrays json node.js mongodb mongoose


    【解决方案1】:

    试试这个。我只为两个参数做了它,请相应地放置其他参数。将代码放入 .js 文件中。我猜你必须已经在数据库中创建了一个集合'tmp'(或你想要的),其中包含_id:0(我在这里匹配)和“banks”:[]。我试图将 doc.length 放在 for 循环中,不知何故它不起作用,所以我把 5 放在那里。你可以试试。几秒钟后检查“tmp”集合,即使节点命令没有以 node.js shell 结束


    var MongoClient = require('mongodb').MongoClient;var assert = require('assert');var ObjectId = require('mongodb').ObjectID;var url = 'mongodb://localhost:27017/test';var insertDocument = function(db, callback) {
    
    doc = "put your doc here"
    for (i = 1; i <= 5; i++){var a =  doc[i][1];var b =  doc[i][2];db.collection('tmp').update({_id:0},{ "$push" : {"banks" :{"name": a,"ifsc": b}}});}; } 
    
    MongoClient.connect(url, function(err, db) { assert.equal(null, err);insertDocument(db, function() {
      db.close();});});
    

    【讨论】:

    • 如果您发现我的回答有用,您会将其标记为正确。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2020-12-25
    • 2021-07-22
    • 2019-07-02
    • 2018-09-05
    • 2017-10-21
    • 2019-12-02
    • 2017-10-18
    相关资源
    最近更新 更多