Tag: mongodb

在Mochatesting中,Mongoose索引不会创build一半时间

每当我运行我的摩卡testing,它交替创build索引,而不是创build它。 我认为这不是创build索引的原因,因为testing可能在完成之前就已经运行了,但是因为它交替出现了这样的模式,我不认为是这种情况。 我也认为这可能与我在每次testing开始时丢弃数据库有关,但是不应该以某种方式影响每一个testing。 有问题的索引: submissionSchema.index({ studentID: 1, assignmentID: 1 }, { unique: true }); 要删除数据库的代码: before(function(done){ mongoose.createConnection(require(__dirname + '/../app/config').mongoURL, function(err){ if (err) throw err; mongoose.connection.db.dropDatabase(function(err){ if (err) throw err; done(); }); }); }); 任何想法是什么造成这个?

Mongo:只使用Node查询今天的文档

如何仅查询今天插入的文档,如何查询MongoDb? 我的文件是这样的 { "_id" : "8Mj3s6GRkvNeftbAP", createdAt: ISODate("2016-02-10T07:51:08.934Z"), } 我试过{"createdAt": new Date()}这可能是由于时间戳的原因。 请帮忙

mongoose – 不能用子模型创build模型

我有一个模型和一些子模型,它们通过父母的ID链接,但是我不能创build父母,然后创build孩子,如果我这样做,反过来,孩子们什么都不挂。 这是我的代码: var mongoose = require('mongoose'); var personalDataSchema = new mongoose.Schema({ form_id : {type : mongoose.Schema.Types.ObjectId, ref : FormModel}, first_name : String, age : Number, gender : String, nationality: String, adress : String, birth_date : String, CNP : String }) var contactDataSchema = new mongoose.Schema({ form_id : {type : mongoose.Schema.Types.ObjectId, ref : FormModel}, phone : […]

在mongodb中以嵌套文档的forms检索数据

以下是我在MongoDB收集中的一组样本数据。 {year : 2010 , studentName: "John", grades :{science: 70, maths: 80, english: 85 }} {year : 2010 , studentName: "Denver", grades :{science: 75, maths: 85, english: 85 }} {year : 2010 , studentName: "Harry", grades :{science: 85, maths: 75, english: 65 }} {year : 2011 , studentName: "John", grades :{science: 70, maths: 80, english: […]

mongodb本机驱动程序错误的查询

我正在使用mongodb本机驱动程序编写filter,但是当您运行查询时,这会导致此错误。 在这个驱动程序的情况下,它没有exec? 什么是执行此查询的另一种方法? exports.findAll = function(req, res) { MongoClient.connect(url, function(err, db) { var section = req.params.section; var collection = db.collection(section); var filter = req.query.filter ? {nameToLower: new RegExp('^' + req.query.filter.toLowerCase())} : {}; var query = collection.find(filter); var count = 0; collection.count(filter, function (error, result) { count = result; }); if(req.query.order) { query.sort(req.query.order); } if(req.query.limit) { […]

Mongoose / JS – 跳出代码,跳过任何块

如果我有一个电话来检查是否存在一个特定的ID – 如果在开始时发现错误,我该如何退出整个事情。 我知道我可以做一个if-else块,但是有一个“更容易阅读”1行的方式。 例如: Question.find({_id: req.headers['questionid']}, {question:1, tags:1}, function(err, foundQ) { if(!err) { //skip everything below including the then } }) .then(function(foundQ){ //Some more stuff here }) 另外,我在另一段代码中使用了Q框架 – 所以如果有另一种方法,那么有人可以指导我也可以提供帮助。

如何通过_id使用MongoDB和Jade(Express.js)删除文档?

我已经成功地使用MongoDBbuild立了一个数据库,并且设法添加了新的条目到我的集合中。 但是,当我使用类似的方法来删除,没有任何反应。 Express.js代码 router.post('/deleteproject', function(req, res) { var MongoClient = mongodb.MongoClient; var url = 'mongodb://localhost:27017/plugd'; MongoClient.connect(url, function(err, db) { if (err) { console.log("Unable to connect to server", err); } else { console.log('Connected to server'); var collection = db.collection('projects'); collection.remove( {_id: new mongodb.ObjectID(req.body)}, function(err, result) { if (err) { console.log(err); } else { res.redirect("thelist"); } db.close(); […]

mongoose.connect() – 无法传递参数

我是nodejs和mongodb的初学者。 我正在使用这个教程scotch.io来开发一个宁静的api 。 我被困在' 连接到我们的数据库 ' mongoose.connect( '的mongodb://节点:node@novus.modulusmongo.net:27017 / Iganiq8o'); 我在 – C:\ mongodb上安装了mongodb 数据目录path – C:\ Users \ mshubham \ Desktop \ Main01 \ data \ db 项目path(api) – C:\ Users \ mshubham \ Desktop \ Main01 \ testapi.js 架构path – C:\ Users \ mshubham \ Desktop \ Main01 \ app \ models 但是我不能在localhost获得api请求:8080 […]

如何忽略MongoDB中的查询字段

有没有办法忽略在查询中传递的字段? 此问题是由来自HTTP请求的查询引起的。 例如,这个查询将获得所有标题为user@example.com some title和用户的电子邮件 //From HTTP request var query = { title: 'some title', 'user.email': 'user@example.com' }; somecollection.find(query, function(err, documents) { //Not good because we know who posted these documents }); 我遇到的困难是我正在开发一个API,基本上可以让你传递一个查询到MongoDB,并返回响应。 但是,敏感的部分是我不希望你通过用户的电子邮件进行查询(因为文档应该是匿名的)。 我知道您可以限制返回的字段,但是如果您可以通过user@example.com查询所有文档,那么这些post不再是匿名的。 我想我可以尝试删除从HTTP请求传入的查询的那一部分,但是我遇到了使用$or其他任何我不知道或忘记的操作符的问题。 或者如果他们使用string来访问用户对象的更深层的部分。 有没有办法限制查询可以查询哪些字段?

GeoJSON在Node.js中使用Mongoose / Mongodb

我正在使用Node.js,Express,Mongo,Mongoose和Mapbox API构build一个带有MEEN堆栈的地图Web应用程序。 到目前为止,它是令人兴奋 我想要显示的数据是来自shapefile的多边形,这些多边形具有与它们相关的属性。 到目前为止,我已经设法将数据加载到Mongodb中,并使用模式configurationMongoose模型。 在节点应用程序中,我可以访问数据,但不会将其加载到地图API中。 我得到错误“未捕获的错误:无效的GeoJSON对象”。 从检查devtools控制台中的对象,我可以看到几何logging是空的。 我认为这是由于模式中的错误configuration。 下面是Mongodb命令行的一条logging。 我为了隐私目的删除了一些元素。 看起来如预期的那样: { "_id" : ObjectId("56c77259336aac299181a207"), "type" : "Feature", "properties" : { "TNRTPCD" : "P", "TNRSBTPCD" : "C", "PRCNTOWNER" : 100, "NTRTMSTMP" : "20140908161622", "TNRSBTPDSC" : "CLAIM", "TRMNTNTPDS" : null, "TAG_NUMBER" : null, "OBJECTID" : 40495, "NTRSRD" : "MTA_ONLINE", "NUM_OWNERS" : 1, "PROTECTED" : "N", […]