Tag: 数据库

在运行相同服务的多个容器上插入重复的数据

我有一个处理相同数据的服务副本的问题。 我的代码从套接字获取数据,然后将该数据插入到数据库。 问题是,如果我有2个相同的服务容器(我有更多的2),他们都插入相同的,我得到我的数据库重复的数据。 有没有办法告诉他们中的一个做插入? 我使用docker和kubernetes,但我还是新的 function dataStream(data) { // get the data from the socket const payload = formatPayload(lines); addToDb(payload); // I want this to happen only from 1 service broadcast(payload) }

为摩卡testing设置数据库连接的最佳实践和最有效的方法

我有一套testing,我在我的代码上运行。 在testing运行之前,我想打开一个到testing数据库的数据库连接,并确保数据库是空的。 这个连接将保持对所有testing打开。 然后,当所有testing完成后,closures数据库连接并清空数据库。 我目前的解决scheme涉及打开每个文件的连接,这将导致大量的连接整体。 这将是理想的打开连接一次 – >运行testing – >清除数据库 – >closures连接一次。 这是我的一个摩卡testing文件的代码: import {assert} from 'chai'; import mongoose from 'mongoose'; import User from '../../../server/models/user.js'; import 'dotenv/config'; mongoose.connect(process.env.DB_TEST).then(db => { describe('User Model', function() { it('Save', function(done) { var john = new User({ name: { first: 'John', last: 'smith' }, email: 'john.smith@gmail.com', type: 'student' }); john.save(done); […]

如何增加Mongoose中子文档的属性?

我正在使用Mongoose在NodeJS中增加一个对象的子文档的评级。 我将在下面发布模型和路线代码。 当我在Postman中执行查询时,我得到一个空的json对象,并返回一个400错误。 这意味着在查询的某个地方我做错了什么。 blogPost模型 const BlogPostSchema = new Schema({ content: { type: String, validate: { validator: (content) => content.length > 5, message: 'Content must contain at least 6 characters.' }, required: [true, 'Content must be filled in.'] }, rating: Number, title: String, user: { type: Schema.Types.ObjectId, ref: 'user' }, board: {type: Schema.Types.ObjectId, ref: 'board'}, […]

devise一个MongoDB数据库 – 有很多embedded式文档可以吗?

我正在尝试为简单的投票系统创build一个MongoDB数据库。 如果我要绘制一个模式,那么它看起来像这样: User { name: String , email: String } Vote { message: String , voters: [ObjectId(User._id)] } 我有一些关于这个devise的问题,当有一个投票的选民很多: 将整个选民arrays发送到客户端(更不用说将其caching在内存中)非常昂贵,对吧? 有没有办法以“浅”的方式得到投票,所以当我需要vote.voters时,它会向选民arrays提出另一个数据库请求? 如果选民已经投了票,我想检查一下,不要数他的票。 要做到这一点,是否有一个查询,我可以运行在embedded式选民arrays快速find这个? 当显示投票时,我想要显示票数而不需要将选民arrays提交给客户端。 有什么计数查询我可以运行来计算选民的长度?

从数据库获取最新的5个数据

我使用node.jsexpression和使用MongoDB,我有一个用户名和ID的数据列表。 如果我想console.log 5插入到数据库的最新数据,你会怎么做? 有任何想法吗?

node.js只传递给mongodb值

我在node.js和mongodb上开发一个项目,并表示必须处理事务。 我可以硬编码的variables要放到MongoDB,但如果不是所有的字段被填写(不是所有的都是必需的),那么我只是把空数据到数据库中。 这段代码的作品: var d = new Date(); var n = d.toJSON(); var date = n; var address = req.body.property_address; var client_name = req.body.client_name; var sales_price = req.body.sales_price; var commission_percent = req.body.commission_percent; var referral = req.body.referral; var donation = req.body.donation; var client_source = req.body.client_source; var client_type = req.body.client_type; var notes = req.body.notes; Transaction.findOne({ name: { […]

node-sqlite3序列化失败:SQLITE_CONSTRAINT:外键约束失败

在Express.js中,我正在尝试使用两个查询的序列化,其中第二个依赖于第一个: 我正在尝试使用第一个查询来获取entryID 我为第二个查询使用该entryID 据我所知,第二个查询是在第一个查询完成之前调用的。 还有“console.log(”我的入口:“+ data.entryID);” 返回正确的entryID。 下面我显示了我正在使用的代码以及我得到的错误。 任何帮助,将不胜感激。 db.serialize(function(){ db.get("Select entryID from entry where pID=$pID",{$pID:participName},function(err, data){ if(err) throw err; foundID=data.entryID; console.log("My entry: "+data.entryID); }); db.run("insert into observation(entryID, objID, data) values($entryID,1,$intro_counter)", {$entryID:foundID, $intro_counter:intro_counter}); }); events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: SQLITE_CONSTRAINT: foreign key constraint failed

数据库查询node.js(PHP风格)

我终于明白了websockets的概念。 我在这里find了很棒的问答,非常感谢。 我将要安装node.js以及apache和geoserver作为web-mapping项目,我将使用node.js来处理websocket。 实际上,在编码方面,我对php有更多的经验,并且很难将我的逻辑从传统的xml-http请求中转移出来,但我会给它一个机会。 一些问题,在我挖掘之前。我使用postgreSQL / postGIS,如何执行从node.js到postgreSQL / postGIS的数据库查询? 我习惯于像下面这样的传统的PHP查询 $stmt = $dbh->prepare("SELECT pins.p_name FROM pins WHERE type.t_id=pins.p_type AND AND p_id = :nm"); $stmt->bindParam(':nm', $nm, PDO::PARAM_STR); $nm=$jas; $data=array('nm'=>$nm); $stmt->execute($data); //blah blah //(I always use PDO and prepared statements) 大多数教程都谈论聊天应用程序,但是关于查询和与postgreSQL / postGIS沟通呢? 在node.js / socket.io中可以吗? 任何提示/教程? 我想执行查询,收集结果,把一些html标签,然后推回到客户端,在一个特定的股利。 另外,是node.js现在在Windows 7上工作,没有问题? 在过去它没有,但我想现在它,因为他们有一个MSI安装程序。 对? 非常感谢你…

忽略所有的字段(键)到Mongo中查找

从文档 find()定义如下: db.collection.find(query, projection) projection是指定要使用投影操作符返回的字段的对象。 要返回匹配文档中的所有字段,请省略此参数。 我的问题是,如果有什么方法可以忽略使用projection对象的所有字段 。 我想收到这样的回复: [{}, {}, {}, {}] (具有空对象的数组) 要忽略我使用的密钥: {"key": 0} 。 我已经尝试了{"$all": 0} ,这似乎不起作用。 我怎样才能忽略所有的领域? 我知道我可以使用count()函数,但在这种情况下这并不能帮助我。

node.js数据库批量插入vs插入一个tme

我是一个nodejs新手,并想知道哪种方式更好地插入数据库的大量的行。 从表面上看,插入东西看起来更像是要走的路,因为我可以快速释放事件循环并提供其他请求。 但是,代码看起来很难理解这种方式。 对于批量插入,我必须事先准备数据,这意味着使用循环肯定。 由于事件循环忙于循环,这将导致较less的请求在此期间被服务。 那么,最好的方法是什么? 我的分析是否正确?