Articles of mongodb

nodejs mongoDB findOneAndUpdate(); 即使在数据库更新后也会返回true

我正在研究Ionic-1 + nodejs +angular度应用程序。 即使第一次调用更新数据库,我的mongoDb findOneAndUpdate()函数在每次调用时都会返回true。 的NodeJS: app.post('/booking', function (req, res) { var collection = req.db.get('restaurant'); var id = req.body.id; var status = req.body.status; collection.findOneAndUpdate({status: status, id: id},{$set:{status:"booked"}}, function (e, doc) { console.log(id, status); if (e) { console.log(e); } else if(!doc) { res.send(false); } else { res.send(true); } }); }); controller.js $scope.bookMe = function(id){ var […]

性能API来处理许多请求

我正在开发一个iOS应用程序来显示来自MongoDB数据库的消息。 该应用程序有大约50,000活跃用户,所以它是相当沉重的服务器上。 我正试图重新考虑应该如何构buildAPI。 我刚刚了解了一些关于AWS API网关,Google Cloud Functions,Firebase等的内容 如果我只需要一些function来提取新闻列表,用户列表等,那么到2017年为止,构build此API的最佳方法是什么? 我一直以为我应该简单地用一些端点创build一个Node.js服务器。 但现在看来,创build单独的terminal节点的performance似乎更好,例如,AWS API网关(每个节点都指向AWS Lambda函数)。 但是什么是最可扩展的select?

如何在MongoDB中获得独占读locking?

节点文件正在根据时间戳sorting的用户帐户的最后一条logging访问运行余额,但是mongodb中的多个线程同时访问同一条logging,所以每个mongo线程的运行平衡都不一致。 有没有办法顺序执行读操作?

用纯stringreplaceMongoDB中的ObjectID

我有一个MongoDB数据库,它可以生成types为ObjectID id。 我认为在将它们与string进行比较时,经常遇到ObjectIDtypes的问题,将它们输出为JSON等。 另外,当我访问用户configuration文件/users/59aed0f8f25c0f0ca8f94aad时,我认为它们非常难看。 所以,我想如果有可能(和聪明)避免使用ObjectID? 我真的很喜欢YouTube和IMDb ID的长度,所以我想找一个algorithm来创build这样的ID。 但是会不会有使用ObjectID的问题? 我从来没有真正明白,为什么他们不只是string,但我想知道是否有一些优化的原因或回溯时生成ID或类似的东西?

无法使用nodejs在db中的所有文档中插入子文档

我正在试图插入一个子文档到所有现有的文档中的一个集合在数据库中,在nodejs中使用快递框架。以下是代码片段: updatedoc: function(update,options,cb) { return this.update({},update,options).exec(cb); } 参数更新和选项如下: const update = { $push: { "defaultads": content }}; const options = { multi: true}; 它似乎运行,并在控制台上提供以下输出: { n: 1, nmodified: 1, ok: 1 } 但在数据库的任何文件中完全没有推送。 我已经检查:1)我是否在正确的分贝。 2)是否正确的值通过但是我无法find我要去哪里错了。 我是nodejs的新手,非常感谢解决这个问题的指导。 提前致谢。

Node.js和MongoDB顺序写入导致竞争状态?

(实际问题:这是顺序写入mongodb,不会导致竞争条件,并且是非阻塞的正确方法?) 我正在尝试在mongodb中完成文档的顺序写入/更新。 操作的顺序是有一定的关键的。 在下一个操作发送到数据库之前必须完成一个操作。 我现在所做的方式是使用Bluebirds Promise.mapSeries()循环请求,并对正确的集合执行正确的操作。 数据库函数然后返回一个Promise给循环。 我相信这是正确的事情。 当承诺解决后,下一次迭代将被解雇。 我相信这也应该是非阻塞的。 对于这个问题。 一堆插入和集合包含大约500k文件后,更新开始失败。 我想要更新的状态不会反映在数据库中。 mongo中没有任何迹象表明操作失败,更改不在数据库中。 数据库是正确的索引,所以不应该在我看来是一个问题。 I / O负载相当高。 目前在开发testing中,每秒大约有250个操作。 在生产这个数字可能是200倍左右。 这里是我现在这样做的片段: Promise.mapSeries(testResults, (result) => { if (result.test) { // Save sequence results and status if (result.test.testSequence) { const coll = db.collection(collection); // query = result.test.id; // newValues = result.test; const options = { upsert: true, […]

find()结果到数组,但不使用.filter的node.js mongodb

我试图从mongodb.find()返回结果使用Array.filter() mongodb.find() ,但它不工作! 我得到这个错误: (TS)属性“filter”在types“{}”上不存在。 function find(collectionName: string, filter: any = {},callback: Function) { const MongoClient = require('mongodb').MongoClient; let url = "mongodb://localhost:27017/test"; MongoClient.connect(url, function (err, db) { if (err) { callback(err, null); //throw err; db.close(); } else { let rs = db.collection(collectionName).find(filter, { _id: false }); rs.toArray(function (err, result) { if (err) throw err; callback(null, […]

从模型创build对象时。 该对象是未定义的

你好,我需要一个项目日志导出.csv下载。 我搜查了很多,但仍然找不到答案。 我在我的mongoDB中创build了一个集合:“令牌” 该模型位于/src/models/token.coffee中 该应用程序位于/src/app.coffee 位于/src/controllers/token.coffee中的控制器 这是我的模特: mongoose = require('mongoose') timestamps = require('mongoose-timestamp') enums = require './enums' schema = mongoose.Schema # Schema definition TokenSchema = new schema user: type: mongoose.Schema.Types.ObjectId ref: 'User' required: true first_name: type: String required: true last_name: type: String required: true status: type: String enums: enums.TokenStatuses.__values default: enums.TokenStatuses.running # Plugins TokenSchema.plugin timestamps, […]

在更新中执行$ set和$ rename

我有以下文档 {“value”:5} 我想要更新导致以下内容: {“value_old”:5,“value”:3} 我正在尝试使用以下更新查询来实现此目的 { $rename: {"value": "value_old"} }, { $set :{ "value": (wtv new value was sent to the function) 3 } 此代码似乎并没有工作….我不想执行两个单独的更新查询 我已经尝试过聚合,并在它的结尾$ out,但导致删除整个集合,我只想更新一个单独的文档。 我这样做的原因是因为我需要操作是primefaces的。 我只是读db.eval(),它看起来很有前途,因为它从读写locking数据库。 有谁知道如何使用db.eval()来执行2更新?

我自己的Trello,将卡片从一个列表移动到另一个列表

首先,我必须说我是一个开始。 我试图创build一个看起来就像Trello的项目,然后我将开始我需要知道,在黑板,列表,卡片(任务)的MongoDB(Mongoose)表中的数据库如何做。 如果我做3个单独的表,我以后如何使用JavaScript拖放移动卡从上到下列表中和我想要的步骤列表之间。 我的意思是,我如何做到这一点,当我把卡从一个列表中移动到另一个卡中,它将更新所有内容并将其保存在数据库中。 我想有人解释我该怎么做,我将非常感激。