Questions tagged «mongodb»

MongoDB是一个可扩展的,高性能,开源,面向文档的NoSQL数据库。它支持多种语言和应用程序开发平台。可以在https://dba.stackexchange.com上询问有关服务器管理的问题。

20
通过将useNewUrlParser设置为true来避免“不建议使用当前URL字符串解析器”警告
我有一个数据库包装器类,用于建立与某些MongoDB实例的连接: async connect(connectionString: string): Promise<void> { this.client = await MongoClient.connect(connectionString) this.db = this.client.db() } 这给了我一个警告: (节点:4833)DeprecationWarning:不建议使用当前的URL字符串解析器,并将在以后的版本中将其删除。要使用新的解析器,请将选项{useNewUrlParser:true}传递给MongoClient.connect。 该connect()方法接受一个MongoClientOptions实例作为第二个参数。但是它没有名为的属性useNewUrlParser。我也试图像这样在连接字符串中设置那些属性:mongodb://127.0.0.1/my-db?useNewUrlParser=true但是它对那些警告没有影响。 那么我该如何设置useNewUrlParser删除那些警告?这对我很重要,因为脚本应作为cron运行,并且这些警告会导致垃圾邮件垃圾邮件。 我正在使用mongodb版本中的驱动程序3.1.0-beta4和中的相应@types/mongodb软件包3.0.18。两者都是的最新版本npm install。 解决方法 使用旧版本的mongodb驱动程序: "mongodb": "~3.0.8", "@types/mongodb": "~3.0.18"



20
E11000 MongoDB猫鼬中的重复键错误索引
以下是我user在user.js模型中的架构- var userSchema = new mongoose.Schema({ local: { name: { type: String }, email : { type: String, require: true, unique: true }, password: { type: String, require:true }, }, facebook: { id : { type: String }, token : { type: String }, email : { type: String }, …


10
v4之前的MongoDB不符合ACID的含义是什么?
我不是数据库专家,也没有正式的计算机科学背景,所以请耐心等待。我想知道如果您使用v4之前的旧MongoDB版本(不兼容ACID)会在现实世界中产生负面影响。这适用于任何不符合ACID的数据库。 我知道MongoDB可以执行Atomic Operations,但是它们不“支持传统的锁定和复杂事务”,主要是出于性能方面的考虑。我还了解数据库事务的重要性,以及当您的数据库用于银行时的示例,并且您正在更新所有都需要同步的几条记录,如果存在以下情况,您希望事务恢复到初始状态:停电,因此信用等于购买等。 但是,当我开始谈论有关MongoDB的话题时,我们当中那些不了解数据库实际实现方式的技术细节的人开始抛出如下语句: MongoDB比MySQL和Postgres快得多,但是有一个很小的机会,例如“百万分之一”,“不会正确保存”。 “无法正确保存”部分指的是这种理解:如果在写MongoDB的那一刻就出现断电,就有可能出现一条特定记录(例如,您正在跟踪具有10个属性的文档中的综合浏览量每个文档),其中一个文档仅保存了5个属性……这意味着,随着时间的流逝,您的综合浏览量计数器将“略微”关闭。您永远不会知道多少,您会知道它们的正确率是99.999%,但不是100%。这是因为,除非您专门将此操作指定为mongodb原子操作,否则不能保证该操作是原子操作。 所以我的问题是,什么时候以及为什么MongoDB可能无法“正确保存”的正确解释是什么?它不满足ACID的哪些部分,在什么情况下,以及您怎么知道何时丢失0.001%的数据?无法以某种方式解决此问题吗?如果没有,这似乎意味着您不应该users在MongoDB中存储诸如表之类的内容,因为记录可能无法保存。但是话又说回来,那1 / 1,000,000用户可能只需要“尝试再次注册”,不是吗? 我只是在寻找与ACID不兼容的数据库(例如MongoDB)何时/为什么会发生负面事件的列表,并且理想情况下是否存在标准的解决方法(例如运行后台作业以清理数据,或仅使用SQL进行此操作等)。 。
226 sql  mongodb  acid  database  nosql 

7
如何为MongoDB中的所有文档重命名字段?
假设我在MongoDB中有一个具有5000条记录的集合,每个记录都包含与以下内容相似的内容: { "occupation":"Doctor", "name": { "first":"Jimmy", "additional":"Smith" } 是否有一种简单的方法可以在所有文档中将字段“附加”重命名为“最后”?我在文档中看到了$ rename运算符,但对于如何指定子字段我不太清楚。
223 mongodb 

19
如何为MongoDB集合中的所有文档选择单个字段?
在我的MongoDB中,我有一个学生集合,其中包含10个具有字段name和的记录roll。此收藏的一条记录是: { "_id" : ObjectId("53d9feff55d6b4dd1171dd9e"), "name" : "Swati", "roll" : "80", } 我只想检索roll集合中所有10条记录的字段,就像我们在传统数据库中那样,可以使用: SELECT roll FROM student 我浏览了许多博客,但所有博客都导致一个查询,其中必须包含WHERE子句,例如: db.students.find({ "roll": { $gt: 70 }) 该查询等效于: SELECT * FROM student WHERE roll > 70 我的要求是只找到一个没有任何条件的钥匙。那么,对此的查询操作是什么。


3
MongoDB:在一个字段上更新每个文档
我有一个foo假设收集的名字。 的每个实例foo都有一个名为lastLookedAt的字段,这是从纪元开始的UNIX时间戳。我希望能够通过MongoDB客户端,并将所有现有文档(其中约20,000个)的时间戳设置为当前时间戳。 处理此问题的最佳方法是什么?
214 mongodb 



7
根据日期返回查询
我在mongodb中有这样的数据 { "latitude" : "", "longitude" : "", "course" : "", "battery" : "0", "imei" : "0", "altitude" : "F:3.82V", "mcc" : "07", "mnc" : "007B", "lac" : "2A83", "_id" : ObjectId("4f0eb2c406ab6a9d4d000003"), "createdAt" : ISODate("2012-01-12T20:15:31Z") } 我如何查询db.gpsdatas.find({'createdAt': ??what here??}),以便它从数据库返回上述数据结果给我?
208 mongodb 


3
如何在mongodb中的对象数组中搜索
假设mongodb文档(表)“用户”为 { _id: 1, name: { first: 'John', last: 'Backus' }, birth: new Date('Dec 03, 1924'), death: new Date('Mar 17, 2007'), contribs: [ 'Fortran', 'ALGOL', 'Backus-Naur Form', 'FP' ], awards: [ { award: 'National Medal', year: 1975, by: 'NSF' }, { award: 'Turing Award', year: 1977, by: 'ACM' } ] …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.