Articles of mongodb

RangeError:无效的状态码:0

我有一个问题,当我在这个应用程序上尝试一个POST请求时,得到以下错误代码(记住我是一个初学者node.js / js程序员): 错误: [20:22:28] [nodemon] starting `node app.js` Running server on 3000 Mon, 27 Jun 2016 19:22:31 GMT express deprecated res.send(status, body): Use res.status(status).send(body) instead at routes\edit.js:35:25 c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\mongodb\lib\utils.js:98 process.nextTick(function() { throw err; }); ^ RangeError: Invalid status code: 0 at ServerResponse.writeHead (_http_server.js:192:11) at ServerResponse._implicitHeader (_http_server.js:157:8) at ServerResponse.OutgoingMessage.end (_http_outgoing.js:573:10) at ServerResponse.send (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\express\lib\response.js:204:10) at ServerResponse.json (c:\Users\Matt\WebstormProjects\ghs_restart\node_modules\express\lib\response.js:249:15) […]

mongoose只使用createdAt时间戳

我在mongoose中有以下消息模式: var messageSchema = mongoose.Schema({ userID: { type: ObjectId, required: true, ref: 'User' }, text: { type: String, required: true } }, { timestamps: true }); 有无论如何忽略updatedAt时间戳吗? 消息不会更新,所以更新将浪费空间

Node.js mongoose:如何使用查询的.in和.sort方法?

我试图围绕mongoose,但我很难find一些更高级的查询选项,特别是.in和.sort方法的任何types的文档。 sorting的语法是什么,例如按年龄分类的人? db.model("Person").find().sort(???).all(function(people) { }); 然后,假设我想根据一个stream派find一部电影,其中一部电影可以有很多stream派(在这个例子中是一串string)。 据推测,我会使用.in函数来完成,但我不确定语法是什么。 或者,也许我不必使用.in方法…? 无论哪种方式,我迷路了。 db.model("Movie").find().in(???).all(function(movies) { }); 有人有主意吗? 或者甚至更好,链接到一些全面的文档? 谢谢! 克里斯

JS节点asynchronous处理事件

有人可以指出我或者解释某种基于事件的devise模式来处理等待两个事件完成的行为。 我有一个模板,加载asynchronous和数据库调用,也是在同一时间发生。 我有一个只有在这两个任务都完成时才需要执行的响应。 我能想出的唯一解决scheme就是做一些丑陋的事情,比如在布尔事件中设置为true,然后检查它们是否全部为真。 有一个更好的方法吗?

有没有办法使用node-mongodb-native的dynamic密钥?

有没有办法使用node-mongodb-native驱动程序的dynamic密钥? 通过这个我的意思是有一个variables持有的关键,而不是直接使用密钥。 正如在通常情况下这样做的时候: db.createCollection('col', function(err, col){ col.insert({'_id':'wak3ajakar00'}); } 改为这样做: db.createCollection('col', function(err, col){ var ID = '_id'; col.insert({ID:'wak3ajakar00'}); } 当我运行后面的代码时,除了标准创build的_id之外,我最终还是在集合db.col中创build了一个名为ID的键的文档,而不是只有一个具有值wak3ajakar00的键_id 。 这使我相信,实际上不可能直接做到这一点。 相反,我现在只是创build我想提前插入的文档,如下所示: db.createCollection('col', function(err, col){ var ID = 'wak3ajakar00'; var key = '_id'; insertion = {} insertion[key] = ID; col.insert(insertion); } 这和我想要的完全一样,但是我只是想知道是否有更好的方法来解决这个问题。 JavaScript,NodeJS和MongoDB对我来说都是新的,所以我觉得我可能很容易丢失一些东西。 如果没有,有没有更清洁的方式来写在JavaScript中的上述代码? 最好的,谢谢, 萨米

如何在node.js和mongodb中实现geoip

我在node.js中看到了一些使用geoip的例子,例如https://github.com/kuno/GeoIP.git和https://github.com/wadey/node-geoip 。 然而,我想要的是显示地图显示geoip为特定的用户。如何实现。

mongoose – 转到下一个元素

我正在尝试通过nodejs中的集合遍历不同的ID。 东西会像下面的代码一样工作: //Callbacks removed for readability var thisPost = mongoose.model('Post').findOne({tags: 'Adventure'}); console.log(thisPost.title); // 'Post #1 – Adventure Part 1' var nextPost = thisPost.next({tags: 'Adventure'); console.log(nextPost.title); // 'Post 354 – Adventure Part 2' 到目前为止最好的想法是添加一个链表到我的模式,所以我可以调用find()通过我的下一个引用特定的ID,但我希望有一些“棘手”,这将允许我使用这个Mongoose引用(thisPost)作为我的find()可以从的游标。 谢谢 编辑:迭代是为了处理多个页面查询。 更好的例子: //Callbacks removed for readability //User 'JohnDoe' visits the website for the first time var thisQuote = mongoose.model('Quote').findOne().skip(Math.rand()); res.send(thisQuote); // […]

toGMTstring()和toUTCstring()有什么区别?

我从Node.js应用程序(使用Mongoose )将数据保存在MongoDB服务器中。 考虑下面的代码: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var schemaObj = new Schema({ field1: String, field2: String, Datefield: Date//So on… }); mongooseDB = mongoose.createConnection('mongodb://myserver:port/DBname'); mongooseDB.on('error', console.error.bind(console, 'error in connection')); mongooseDB.once('open', function (err) { var objmodel = db.model('myschema', schemaObj); modelObj.field1 ='value1'; modelObj.Datefield = new Date().toGMTString(); //new Date().toUTCString(); //So on.. modelObj.save(function (err) { if […]

为什么在不同的模型文件中使用model.export?

关于拆分模型数据的问题,看一些Stackoverflow的答案,我看到两种不同的格式。 见下文: var UserSchema = mongoose.Schema({ name: String }) module.exports = mongoose.model('User', UserSchema); 与此方法相比: var UserSchema = mongoose.Schema({ name: String }) mongoose.model('User', UserSchema); 使用module.exports…与仅使用module.exports…什么区别?

是否有可能传递一个额外的参数到mongoose更新callback

我有mongoose更新调用,并想传递额外的参数…像这样: 试图通过isLoopOver UserInfo.update({_id: userInfo._id}, {'value': someval}, function(err, numAffected, isLoopOver ) { console.log('IsLoopOver ' + JSON.stringify(isLoopOver) ); if (isLoopOver){ doSomething(isLoopOver); } }); 试过以上,但我得到一个对象(在callback内)如下: {"updatedExisting":true,"n":1,"connectionId":117,"err":null,"ok":1} 不知道为什么它显示从mongo状态。 问题:如何通过callback传递额外的参数?