Questions tagged «mongodb»

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

25
服务器发现和监视引擎已弃用
我在我的Node.js应用程序中使用Mongoose,这是我的配置: mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false }).then(()=>{ console.log(`connection to database established`) }).catch(err=>{ console.log(`db error ${err.message}`); process.exit(-1) }) 但是在控制台中,它仍然会向我发出警告: DeprecationWarning:不建议使用当前的“服务器发现和监视”引擎,并将在以后的版本中将其删除。要使用新的“服务器发现和监视”引擎,请将选项{useUnifiedTopology:true}传递给MongoClient构造函数。 问题是什么?我以前没有使用useUnifiedTopology过,但是现在它显示在控制台中。我将其添加到配置中,但它仍会给我这个警告,为什么?我什至不使用MongoClient。 编辑 Felipe Plets回答时,猫鼬存在问题,他们在更高版本中修复了该错误。因此,您可以通过更新猫鼬版本来解决问题。

4
mongoDB / mongoose:唯一,如果不为null
我想知道是否有办法强制唯一的收集条目,但前提是条目不为null。e示例架构: var UsersSchema = new Schema({ name : {type: String, trim: true, index: true, required: true}, email : {type: String, trim: true, index: true, unique: true} }); 在这种情况下,不需要'email',但是如果保存'email',我想确保该条目是唯一的(在数据库级别)。 空条目的值似乎为'null',因此每个条目都不会因'unique'选项而导致电子邮件崩溃(如果有其他用户没有电子邮件)。 现在,我正在应用程序级别解决它,但希望保存该数据库查询。 谢谢

2
未指定排序顺序时,MongoDB如何对记录进行排序?
当我们运行未指定任何排序顺序的Mongo find()查询时,数据库在内部使用什么对结果进行排序? 根据mongo网站上的文档: 当执行不带参数的find()时,数据库将以自然前向顺序返回对象。 对于标准表,自然顺序并不是特别有用,因为尽管顺序通常接近插入顺序,但不能保证一定如此。但是,对于有上限的集合,可以保证自然顺序为插入顺序。这可能非常有用。 但是,对于标准馆藏(无上限馆藏),使用哪个字段对结果进行排序?是_id字段还是其他? 编辑: 基本上,我想尝试执行的是以下搜索查询: db.collection.find({"x":y}).skip(10000).limit(1000); 在两个不同的时间点:t1和t2,我将得到不同的结果集: 什么时候t1和t2之间没有其他写操作? t1和t2之间何时有新的写入? 在t1和t2之间添加了新的索引吗? 我已经在临时数据库上运行了一些测试,对于这3种情况,我得到的结果都是相同的(是)-但我想确定一下,并且我肯定我的测试用例不是很全面。
103 mongodb 

6
MongoDB中的$ unwind运算符是什么?
这是我在MongoDB的第一天,所以请和我一起轻松:) 我听不懂$unwind操作员,也许是因为英语不是我的母语。 db.article.aggregate( { $project : { author : 1 , title : 1 , tags : 1 }}, { $unwind : "$tags" } ); 我想我可以理解项目操作员(就像SELECT,不是吗?)。但是,然后$unwind(citing)为每个源文档中未展开数组的每个成员返回一个文档。 这像JOIN吗?如果是,如何的结果$project(有_id,author,title和tags字段)可以用比较tags阵列? 注意:我从MongoDB网站获取了示例,我不知道tags数组的结构。我认为这是一个简单的标签名称数组。

10
使用Mongoose从MongoDB文档中删除密钥
我正在使用Mongoose库通过node.js访问MongoDB 有没有办法从文档中删除密钥?即不只是将值设置为null,而是将其删除? User.findOne({}, function(err, user){ //correctly sets the key to null... but it's still present in the document user.key_to_delete = null; // doesn't seem to have any effect delete user.key_to_delete; user.save(); });

6
在数组中的ObjectId上的$ lookup
在由ObjectId数组而不是单个ObjectId组成的字段上执行$ lookup的语法是什么? 订单文档示例: { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ] } 不起作用的查询: db.orders.aggregate([ { $lookup: { from: "products", localField: "products", foreignField: "_id", as: "productObjects" } } ]) 所需结果 { _id: ObjectId("..."), products: [ ObjectId("..<Car ObjectId>.."), ObjectId("..<Bike ObjectId>..") ], productObjects: [ {<Car Object>}, {<Bike Object>} ], }

6
MongoDB mongorestore失败:语言环境:: facet :: __ S_create_c_locale名称无效
我在计算机A(ubuntu 12.04服务器)上使用mongodump创建了一个转储。我将其移至计算机B(ubuntu 12.04服务器)并输入: mongorestore -db db_name --drop db_dump_path 它失败了,它报告: 连接到:127.0.0.1 引发'std :: runtime_error'what ()实例之后调用终止终止what():locale :: facet :: __ S_create_c_locale名称无效 已终止 我之前已经成功完成了此操作,而且从未发生过这种奇怪的行为。我需要怎么做才能解决此问题?

13
E:无法找到软件包mongodb-org
我正在尝试下载mongodb,并且正在按照此链接上的步骤进行操作。 但是当我走到这一步时: sudo apt-get install -y mongodb-org 我收到以下错误: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package mongodb-org //This is the error 为什么会发生这种情况,并且有解决方法?

6
MongoDB不等于
我正在尝试在MongoDB中显示文本字段不是''(空白)的查询 { 'name' : { $not : '' }} 但是我得到了错误 invalid use of $not 我查看了文档,但是它们使用的示例适用于复杂的情况(使用regexp并$not否定另一个运算符)。 我要如何做简单的事情?
102 mongodb 

3
如何从Mac OS终端连接到远程mongo服务器
我想放入MacBook终端中的mongo外壳。但是,我有兴趣连接到在云中运行的Mongo实例(通过Heroku插件的comppose.io实例)。我有MongoDB URI中的名称,密码,主机,端口和数据库名称: mongodb://username:password@somewhere.mongolayer.com:10011/my_database 我已经使用Homebrew在MacBook上安装了mongodb,不是因为我希望Mongo在Mac上运行,而是为了访问mongo shell程序以连接到此远程数据库。 但是,我找不到正确的命令来获得我想要的完整Shell访问权限。使用此处找到的说明http://docs.mongodb.org/manual/reference/program/mongo/(搜索“远程”),我能够获得看起来像连接的内容,但没有提供用户名或密码,我就不会完全连接。运行db.auth(username, password)返回1(当我提供不正确的用户名和密码时,与“身份验证失败”相对),但是在发出show dbs命令时,我继续收到“未授权”错误消息。


7
如何获得猫鼬模型的所有计数?
我如何知道已保存数据的模型的数量?有一种方法Model.count(),但似乎不起作用。 var db = mongoose.connect('mongodb://localhost/myApp'); var userSchema = new Schema({name:String,password:String}); userModel =db.model('UserList',userSchema); var userCount = userModel.count('name'); userCount是一个对象,调用哪种方法可以得到实数count? 谢谢


27
“字段需要找不到类型的bean。” 使用mongodb的错误Spring Restful API
所以我在接下来的几周里一直在学习Spring,一直在关注本教程 构建RESTful Web服务 在我尝试将其集成到mongodb之前,一切都很好。所以我按照本教程。 使用MongoDB访问数据 但是我的做法部分仍然是使用第一个。所以我的项目目录结构是这样的。 src/ ├── main/ │ └── java/ | ├── model/ | | └── User.java | ├── rest/ | | ├── Application.java | | ├── IndexController.java | | └── UsersController.java | └── service/ | └── UserService.java └── resources/ └── application.properties 这是我的模型/User.java文件 package main.java.model; import org.springframework.data.annotation.Id; import …
101 java  spring  mongodb  rest 

1
如何配置MongoDB Java驱动程序MongoOptions以用于生产?
我一直在网上搜索有关为MongoDB Java驱动程序配置MongoOptions的最佳实践,除了API之外,我还没有提出其他建议。在我遇到“ com.mongodb.DBPortPool $ SemaphoresOut:信号量不足以获取数据库连接”错误之后,此搜索开始了,并且通过增加连接数/乘数,我能够解决该问题。我正在寻找配置这些选项的链接或您的最佳实践。 2.4驱动程序的选项包括:http : //api.mongodb.org/java/2.4/com/mongodb/MongoOptions.html autoConnectRetry connectionsPerHost connectTimeout maxWaitTime socketTimeout threadsAllowedToBlockForConnectionMultiplier 较新的驱动程序具有更多选择,我也将有兴趣了解这些。

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.