Tag: mongodb

如何*不*保存mongoose文件?

我有一个mongoose字段X.我查询并更新其数据。 在某些情况下,它必须被复制,并且只有新的副本必须用新数据保存到数据库(原始数据必须与查询前保持一致)。 但不知何故,mongoose保存原始文件,即使我没有问一个.save()命令。 X.findById(req.params.id) .exec(function (err, original) { original.name = 'newName'; if(condition){ var copy = new X(original); copy.isNew = true; copy._id = mongoose.Types.ObjectId() X.collection.insert(copy, callback(){}) }else{ original.save(); } 有任何想法吗?

MongoDB:从另一台服务器复制数据后,不查询

我有一个生产服务器,我们有一个nodejs应用程序和一个MongoDB数据库。 我们在服务器上有一个虚拟机,应用程序和数据库位于那里。 现在,我们要在另一台服务器上构build一个开发环境。 因此,我们已经将虚拟机复制到另一台服务器。 但现在,当我们的应用程序查询MongoDB时,它不会得到任何数据。 但是,它连接到数据库,MongoDB的日志和日志forms的应用程序显示给我们。 而且,当我们在整个mongo shell中查询数据库的时候,我们得到的数据。 应用程序使用mongoose连接到数据库。 因此,我们试图复制生产服务器的数据为: 在生产服务器上执行mongoexport,然后在其他机器上执行mongoimport,但是什么也没有。 在生产服务器上执行一个mongodump,然后在其他机器上执行一个mongorestore,但是什么都没有。 服务器的特点如下: 两个服务器的操作系统:Ubuntu 16.04 MongoDB版本:3.2.11 然后,因为我无法获得数据,我试图将其复制到我的本地主机。 但是这不是问题,这只是附加信息: 我的电脑操作系统:Ubuntu 14.04(32位) MongoDB版本:3.2.4

不同的数据库使用每个请求节点js mongodb

我有一个应用程序谁需要支持来自不同领域的请求。 所有域的代码需要是相同但不同的数据库。 我有一个Mongodb客户端的巫师给模型的连接。 有没有办法让这个类内的请求的域名,而不是从任何调用发送到该函数(我有很多不同的服务调用) 请查看getDb函数的注释以了解我的需求 谢谢 const MongoClient = require('mongodb') const assert = require('assert'); let MongoInstance = null; class Mongo { constructor(connectionString = null, connectionOptions = {}) { if (MongoInstance === null) { MongoInstance = this; } this.connectionString = connectionString; this.connectionOptions = connectionOptions; this._db = {}; return MongoInstance; } buildConnectionString() { if (this.connectionString !== null) […]

在db.create模型中使用Mongoose.Schema.Types.Decimal时发生ValidationError

版本: mongoose@4.11.5 mongodb服务器版本:3.4.7 模型: var mongoose = require('mongoose'), Schema = mongoose.Schema; var CheckSchema = new Schema({ providerName: String, number: String, date: { type: Date }, dateReceived: { type: Date }, amount: Schema.Types.Decimal, paymentType: String, comment: String, status: String, images: [Image], transactions: [Transaction], rejectedTransactions: [Transaction], payerName: String }); 服务器代码: Check.create(newCheck, function (err, check) { if (err) […]

Mongoose模型访问模式属性

我有以下架构 import * as mongoose from "mongoose"; let _posteSchema = new mongoose.Schema({ … updatedAt: {type: Date, default: Date.now}, … }); export default (_posteSchema); 而在另一个文件我正在尝试这个 import * as mongoose from "mongoose"; import posteSchema from "./poste-schema"; let Poste = mongoose.model("Poste", posteSchema); let _poste = new Poste(); _poste.updatedAt = Date.now(); 我得到了错误“TS2339:Property'updatedAt'在types'Document'上不存在。它曾经工作,而且我正在为此哭泣… 任何帮助将是如此伟大;) (使用“mongoose”:“^ 4.11.12”)

mongoose得到一个除了一个随机元素

我有一个MongoDB的文章集合。 我select了一篇我想呈现的文章,并且我想要随机select其他两篇文章。 我想在我的collections中挑选两篇不一样的文章,而不是我之前select的文章。 一直在这个问题上几个小时,寻找一个解决scheme,但只发现如何随机挑选一个元素,但不是除了一个… 这是我现在拥有的: article.find({}, function(err, articles{ var articleChosen = articles.filter(selectArticleUrl, articleUrl)[0]; article.find({}) .lean() .distinct("_id") .exec(function(err, arrayIds){ var articleChosenIndex = arrayIds.indexOf(articleChosen._id); arrayIds.splice(articleChosenIndex, 1); chooseRdmArticle(arrayIds, function(articleRdm1Id){ var articleRmd1 = articles.filter(selectArticleId, articleRdm1Id)[0]; var articleRdm1Index = arrayIds.indexOf(articleRdm1Id); arrayIds.splice(articleRdm1Index, 1); chooseRdmArticle(arrayIds, function(articleRdm2Id){ var articleRmd2 = articles.filter(selectArticleId, articleRdm2Id)[0]; // do stuff with articleChosen, articleRmd1 and articleRmd2 }) }) }) […]

这是一个正确的,为什么要在MongoDB中创build自动增量?

这是一个正确的,为什么要创build每个集合的自动增量方法在mongodb? function counter(colName, callback) { MongoClient.connect(url, function(err, db){ db.collection(colName).find().count(callback); }); } function myInsert(obj, colName) { MongoClient.connect(url, function(err, db){ counter(colName, function(err, data){ obj._id=data+1; console.log(obj); db.collection(colName).insert(obj, function(err, res){ console.log("Inserted"); }); }); }); } myInsert({ "name" : "India" }, "hello");

mongoose计数返回错误的数据

Meeting.count(countQuery).then(countBookings) .then(findUser) . // a few more then blocks, that are not relevant to my problem . . .catch((err) => { console.log('The meeting error is ', err); }) 这是我的计数查询对象: let countQuery = { startDate: {$gte: date1, $lte: date2}, teamId: req.body.teamId }; 这是我的预约function: const countBookings = (data) => { console.log('reached countBookings') if (data >= 6 || […]

同步两个MongoDB集合

我有2个mongodb放置在2个不同的服务器。 每个都有一个收集items 。 第一个集合有生产数据,并执行大量的insert和update ,第二个是空的。 现在我的任务是将数据从第一个集合传输到第二个集合,并保持同步几个小时。 我们已经实施了oplog解决scheme。 但是由于我们在第一个蒙元天堂里没有听取localcollections的许可,我们必须find另一个出路。 我想到的一种方法是创build2个服务: – 在第一个调用中,我查询第一个集合中的所有数据并将其传送到第二个集合。 然后我将这些数据保存在内存中。 – 在第二次调用中,我查询第一个集合中的所有数据,然后使用工具对它们进行比较,然后将差异发送到第二个集合。 – 重复,直到2个服务之一被取消。 显而易见的问题是查询和比较数据的资源浪费巨大。 所以我需要你的帮助来find解决这个问题的另一种方法。 提前致谢。 生命值

MongoDB聚合,geNear并迭代callback

我有一个问题,我找不到解决scheme。 我有一些MongoSchemas用于存储来自用户的地理定位。 手机每隔5分钟发送一次经纬度。 这个API是完美的。 Mongo-Schema看起来像: // Importing Node packages required for schema const mongoose = require('mongoose'); const Schema = mongoose.Schema; //= =============================== // User Schema //= =============================== const GeolocationSchema = new Schema({ loc: { type: { type: String }, coordinates: { type: [Number], index: '2dsphere' } }, user: { type: Schema.Types.ObjectId, ref: 'User' } }, […]