Tag: mongodb

通过ObjectID express js查找用户

我试图通过MongoDB的ObjectId来search用户,但结果很差。 App.js: var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); // Database var mongo = require('mongodb'); var monk = require('monk'); var db = monk('localhost:27017/ePoi'); var routes = require('./routes/index'); var eppoi = require('./routes/eppoi'); var poi = require('./routes/poi'); var user= require('./routes/user'); […]

尝试使用Express.js&Jade从MongoDB数据库删除条目

我创build了一个应用程序,添加和删除“案例研究”。 我可以很容易地添加条目,但是当我尝试删除一个条目时,我将表单页面redirect到表单操作URL附加到最后。 当我回到原始表单页面时,实际上条目会被删除,但理想情况下,我希望能够在添加/删除条目时保持在同一页面上。 form.jade form(method="POST", action="/form/#{entry._id}?_method=DELETE") input(type="submit", value="Delete") form.js /* Delete Case Study */ router.delete('/:id', function (req, res) { Entry.findById(req.params.id) .exec(function(err, entries) { // changed `if (err || !doc)` to `if (err || !entries)` if (err || !entries) { res.statusCode = 404; res.send({}); } else { entries.remove(function(err) { if (err) { res.statusCode = 403; res.send(err); […]

mongoose分页sorting

我有麻烦让我的分页与Mongoose和NodeJs工作。 在我的collections中,我使用ID来创build分页,如下所示: var limit = req.params.limit ? req.params.limit : 1; limit ++; if(req.params.start){ var start = mongoose.Types.ObjectId(req.params.start); Canvas.find().where({_id : {$lte : start}}).sort({"_id": -1}).limit(limit).exec(function(err, items){ if(items.length > limit -1){ var last = items.pop(); items.push({next : last._id}); } }); }else{ Canvas.find().sort({"_id": -1}).limit(limit).exec(function(err, items){ if(items.length > limit -1){ var last = items.pop(); items.push({next : last._id}); } }); } […]

mongo和mongoose不同的行为?

在mongo shell中,我可以这样做: db.getCollection('usercourses').update({ _id:ObjectId("54bee7c6ababf28b4ea5a07f")}, { $unset:{ 'steps.0.topic':'' } }, {strict:false}) 它会从find的文档中删除数组内的对象的“主题”字段。 但是当我用mongoose做这个时: function() { return UserCourses.findQ() .then(function(uCourse){ return Q.all(uCourse.map(worker)) }).catch(function(error) { console.log(error); }); } function worker(uCourse) { return Q.all(uCourse.steps.map( function(step,i){ var field1 = 'steps.'+i+'.topic'; return UserCourses.updateQ({_id:uCourse._id}, { $unset:{field1:''}, }, {strict:false}); } )) } 什么都没发生。 为什么?

在MongoDB中更新数组中的多个值

我收到一个jsonObject并想执行Mongo-DB更新: jsonObject: "tablename":"1","inventar":[{"ean":"802.6180.222"},{"ean":"657.7412.878"}]} 现有文件(缩写): "tablename": "1", "accepted": false, "inventar": [ { "ean": "802.6180.222", "accepted": "0" }, { "ean": "657.7412.878", "accepted": "0" } ], 我需要为Array中的每个对象(在invetar-jsonObject中)将接受的值设置为“1”。 代码: app.post('/in_accept', function(request,response){ var jsonString=request.body.json; var jsonObj = JSON.parse(jsonString); var InUser = jsonObj.in_user; var InDate = jsonObj.in_date; var inventar = jsonObj.inventar; //is an Array var tablename = jsonObj.tablename; console.log(inventar); var query […]

钩住特定的Mongoose模型查询

我在invoice.js中有自包含的模型 'use strict'; // load the things we need var mongoose = require('mongoose'); var auth_filter = require('../../auth/acl/lib/queryhook'); var invoice_db = mongoose.createConnection(config.mongo.url + '/invoiceDB'); // PROMISE LIBRARY USED FOR ASYNC FLOW var promise = require("bluebird"); var Schema = mongoose.Schema, ObjectId = Schema.Types.ObjectId; // define the schema for our invoice details model var invoicedetailSchema = new Schema({ […]

mongoose:没有保存的对象数组

我正在尝试添加对象id到数组中(mongoose)(Node.js)。 这是我的代码: app.post('/api/users/:userId/favorites/:objectId', function(req, res, next) { User.findByIdAndUpdate(req.params.userId, {$addToSet: {user_favorites: req.params.objectId}}, {safe: true, upsert: true}, function(err, data){ if (err) return res.status(500).send(err) res.status(200).send({'message':'saved'}); }) }) 这是我的模型: module.exports = mongoose.model('User',{ … user_favorites: [{ type: mongoose.Types.ObjectId, ref: 'Property' }], … }) 没有错误被返回,但是ID不被添加到数组中。 我错过了什么?

在定时器+一个条件上删除logging

我的程序是一个在线游戏。 我创build一个包含玩家的游戏对象。 如果没有其他玩家(不是创build游戏的玩家)join游戏,我想在3小时后删除游戏logging。 我可以指望玩家,我知道有关mongodb的TTL,但是我怎样才能设置一个只会触发的TTL,就是没有多个玩家?

如何在nodejs应用程序中输出mongodb集合以获得响应

我正在使用Cloude 9环境来开发我的nodejs应用程序。 在那里我写了代码连接到mongodb数据库。 我成功地连接到数据库并添加logging到集合。 现在我想发送收集信息作为回报。 但是使用res.send(collectionInfo); 不pipe用。 让我知道我该怎么做到这一点 以下是我的server.js文件的代码 var Db = require('mongodb').Db; var http = require('http'); var path = require('path'); var async = require('async'); var socketio = require('socket.io'); var express = require('express'); var ejs = require('ejs'); var app = express(); var helpers = require('express-helpers') var MongoClient = require('mongodb').MongoClient; var Server = require('mongodb').Server; var db; […]

节点JS Inspect显示属性有价值,但检查属性返回未定义

我正在做一个Node JS应用程序,使用Coffeescript和Mongoose与MongoDB数据库。 我有一个像这样的Mongoose模型: Client = mongoose.model 'Client', mongoose.Schema # Basics name: String email: String api_key: String # Modules enabled / disabled modules: Object # Settings for modules reporting: Object filter: Object templates: Object datatypes: Object modules属性是一个包含键的对象,其中包含一个指示是否应该加载模块的布尔值(请参阅本文后面的console.log输出)。 以下四个属性是特定模块的设置。 当我的应用程序启动时,我为当前用户加载这些信息,并将数据分配给一个像这样的configurationvariables: config.name = clients[0].name config.api_key = clients[0].api_key config.modules = reporting_enabled: clients[0].modules.reporting filter_enabled: clients[0].modules.filter templates_enabled: clients[0].modules.templates datatypes_enabled: clients[0].modules.datatypes 现在,前三个模块完美地工作。 […]