Mongodb 蒙戈插入了许多困惑。。。报告没有来自CLI的条目

Mongodb 蒙戈插入了许多困惑。。。报告没有来自CLI的条目,mongodb,Mongodb,我对Mongo是全新的,但我认为我所做的已经足够直截了当了。。。我有一个JSON文件中表示的大量对象/记录,我想使用multiInsert将所有这些记录加载到一个集合中。下面的函数用于先删除集合,然后执行insertMany: const importRecords=(数据库、集合、对象)=>{ const dbCollection=db.collection(collection); 返回新承诺((解决、拒绝)=>{ dbCollection.drop() .then(()=>dbCollec

我对Mongo是全新的,但我认为我所做的已经足够直截了当了。。。我有一个JSON文件中表示的大量对象/记录,我想使用
multiInsert
将所有这些记录加载到一个集合中。下面的函数用于先删除集合,然后执行insertMany:

const importRecords=(数据库、集合、对象)=>{
const dbCollection=db.collection(collection);
返回新承诺((解决、拒绝)=>{
dbCollection.drop()
.then(()=>dbCollection.insertMany(对象))
.然后(解决)
.捕获(拒绝);
});
};
这里称之为:

const fs=require('fs');
让markers=JSON.parse(fs.readFileSync('./data/markers.JSON'{
编码:“utf8”,
}));
连接(url,函数(err,db){
assert.equal(null,err);
log('已正确连接到服务器');
导入记录(db,'标记',标记)。然后(r=>{
log(`inserted${r.insertedCount}markers`,Object.keys(r));
db.close();
});
});
该函数运行到完成,并正确报告已导入279条记录。然而,这就是问题所在。如果我转到
mongo
CLI并键入:

使用测试
db.markers.find()
我没有得到任何回应。而对于其他集合,它返回集合中的所有记录。顺便说一句,我有Fortune.js为这个Mongo DB的API提供服务,它识别并公开了
/markers
的端点,但是GET操作显示了279条“垃圾”记录。。。嗯,它可能不是垃圾,但它肯定不是我试图放入其中的对象数组。请记住,Fortune.js将试图表示官方JSON-API 1.0规范中的标记。下面是我得到的示例:

{ “元”:{ “计数”:279 }, “链接”:{ “self”:“/标记” }, “数据”:[ { “类型”:“标记”, “id”:“567de88fe58da85d041b40d5”, “链接”:{ “自我”自我::“自我::“/标记者/自我(自我)自我::“/标记者/身份识别,身份识别,身份,V%7D%7D%7%7%7%7%7%7%7%6%7%6%6%8%8%8%6%7%8%7%8%8%c8%C2%8%C2%8%8%8%8%8%8%5%5%5%5%2%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%8%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5%5)%20%7B%0A%20%20%20hextstring%20%2B%3D%20hexTable%5bis.id.charCodeAt(i)%5D%3B%0A%20%20%20%7D%0A%20a%20if(ObjectID.cachextstring)%20this.\u-id%20%3D%20hextstring%3B%0A%20%20a%20a%20a%0A%7D,获取函数%20()%20%7B%0A%20%20%20a%20a%20a%20a%20a%20a%20a%20a%20a%20a%20a%20a%20a%20b%ff7d,获取函数%20%7B%0A%20%20a返回%20this.get_inc()%3B%0A%7D,生成,函数%20(时间)%20%7B%0A%20%20if%20('number'%20%21%3D%20typeof%20time)%20%7B%0A%20%20%20%20time%20%3D%20parseInt(Date.now()%2F1000%2C10)%3B%0A%20%20%20%20%7D%0A%20%20var%20time4Bytes%20%3D%20BinaryParser.encoint(time%2032%202c%true%202c%true%202c)%3B%0A%20%20%2F*%20for%20time-based%20ObjectID%20the%20bytes%20following%20time%20will%20zero%20*%2F%0A%20%20var%20machine3Bytes%20%3D%20BinaryParser.encoint(机器ID%2C%2024%2C%20false)%3B%0A%20%20var%20pid2Bytes%20%3D%20BinaryParser.fromShort(%20process%20%3D%3D%20%3D%20'undefined%20%3F%20f%20f.floor)的类型%20*%20100000)%20%3A%20process.pid)%20%25%200xfff)%3B%0A%20%20var%20index3Bytes%20%3D%20BinaryParser.encodeInt(this.get_inc()%2C%2024%2C%20false%2C%20true)%3B%0A%0A%20%20time4Bytes%20%2B%20machine3Bytes%20%2B%20index3b%3B%20a%0A%7D,toString,函数%20%20%7B%20a%20a%20a%20a%20d%3B%0A%7D,检查,函数%20()%20%7B%0A%20%20return%20this.toHexString()%3B%0A%7D,toJSON,函数%20()%20%20%20a%20return%20this.toHexString()%3B%0A%7D,equals,函数%20equals(otherID)%20%7B%0A%20var%20id%0A%0A%20if(otherID%20%21%3D%20null%20%26%26%20%20(otherID%20instanceof%20c%207c.hexstring))%20%7B%0A%20%20%20%20id%20%3D%20otherID.id%3B%0A%20%20%7D%20else%20if(类型为%20otherID%20%3D%3D%20'string'%20%26%20ObjectID.isValid(otherID))%20%7B%0A%20%20%20id%20%3D%20ObjectID.createFromHexString(otherID).id%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20false%3B%0A%20%7D%0A%20%20return%20this.id%20%3D%3D%20id%3B%0A%0A%20var%20timestamp%20%3D%20new%20Date()%3B%0A%20%20%20a%20%20timestamp.setTime.setTime(语法分析器.解码(此.substrytimestime.id(此.substring.2034%202c%202c)真二进制码%202c%202c%202c)%3B%0A%20%20返回%20时间戳%3B%0A%7D,生成时间,1451092111“ } },


您确定要插入到
测试
数据库中吗?非常确定。我的连接字符串是
mongodb://localhost:27017/test
…这不是放在测试数据库中吗?是的,应该是正确的。但我认为集合名称不正确:
导入记录(db,'marker',markers)
应该是
导入记录(db,'markers',markers)
(第二个参数的复数形式)。只需在CLI中运行
db.marker.find()
,检查是否存在这种情况。我想我已经检查过了,但值得再看一看