标签: mongodb-atlas

从 Spring Boot 连接 Mongodb Atlas

我是使用 Spring Boot 的 Mongodb 新手。我有 MONGODB ATLAS U​​RI 连接字符串

mongodb://userName:<PASSWORD>@icarat-shard-00-00-7lopx.mongodb.net:27017,icarat-shard-00-01-7lopx.mongodb.net:27017,icarat-shard-00-02-7lopx.mongodb.net:27017/<DATABASE>?ssl=true&replicaSet=icarat-shard-0&authSource=admin
Run Code Online (Sandbox Code Playgroud)

然后在我的 Spring Boot 应用程序中,我在 application.properties 中设置了 uri,例如

spring.data.mongodb.uri: mongodb://userName:*****@icarat-shard-00-00-7lopx.mongodb.net:27017,icarat-shard-00-01-7lopx.mongodb.net:27017,icarat-shard-00-02-7lopx.mongodb.net:27017/vehicleplatform?ssl=true&replicaSet=icarat-shard-0&authSource=admin
Run Code Online (Sandbox Code Playgroud)

这个存储库接口

public interface OrganizationRepository extends   MongoRepository<Organization, String> {   

}
Run Code Online (Sandbox Code Playgroud)

当我注入 OrganizationRepository 接口时,它显示这样的错误

无法实例化 [com.mongodb.MongoClient]:工厂方法 'mongo' 抛出异常;嵌套异常为 java.lang.IllegalArgumentException:连接字符串包含无效的用户信息。如果用户名或密码包含冒号 (:) 或 at 符号 (@),则必须对其进行 urlencoded

这是我的文档类

@Document(collection="Organization")
public class Organization {

    @Id
    String id;

    String orgName; 

    String orgAddress;

    String pinCode;

//getter 

//setter
}
Run Code Online (Sandbox Code Playgroud)

这是我的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.icarat</groupId>
  <artifactId>vehicleplatform</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>vehicleplatform</name>
  <url>http://maven.apache.org</url>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
        <relativePath/> …
Run Code Online (Sandbox Code Playgroud)

mongodb spring-boot mongodb-atlas

6
推荐指数
1
解决办法
1万
查看次数

Mongoengine 连接到 atlas 还没有找到副本集成员

在一个工作生产应用程序连接到本地 mongo 之后,我们决定转移到Mongo Atlas. 这导致了生产错误。

Our stack is docker -> alping 3.6 -> python 2.7.13 -> Flask -> uwsgi (2.0.17) -> nginx running on aws
flask-mongoengine-0.9.3 mongoengine-0.14.3 pymongo-3.5.1
Run Code Online (Sandbox Code Playgroud)

在 中启动应用程序时staging/productionuwsgi正在发送No replica set members found yet.

我们不知道为什么。

我们尝试了不同的连接设置connect: False,这是延迟连接,这意味着不是初始化,而是第一次查询。它导致 nginxresource temporarily unavailable在我们的某些应用程序上因错误而失败。我们不得不多次重新启动应用程序才能最终开始服务请求。

我认为问题出在 pymongo 以及它不是fork-safe http://api.mongodb.com/python/current/faq.html?highlight=thread#id3 并且uwsgi正在使用叉子的事实

我怀疑这可能与我的应用程序的初始化方式有关。可能由 aginst Using PyMongo with Multiprocessing 这里是应用程序初始化代码:

from app import FlaskApp
from flask import current_app

app = None

from …
Run Code Online (Sandbox Code Playgroud)

python pymongo uwsgi mongodb-atlas

6
推荐指数
0
解决办法
1032
查看次数

MongoDB Atlas 副本集名称

我在哪里可以找到 MongoDB atlas 中的副本集名称,因为我一直收到这个:

MongoError:种子列表不包含 mongos 代理,replicaset 连接需要在 URI 或选项对象中提供参数 replicaSet,mongodb://server:port/db?replicaSet=name

mongoose mongodb mongodb-atlas

6
推荐指数
2
解决办法
5009
查看次数

在多个集合上执行事务时,MongoDB Atlas错误(代码8000)

我试图从蒙戈DB节点JS司机蒙戈DB阿特拉斯M0实例进行交易(如描述在这里),我收到以下错误:

code:8000
codeName:"AtlasError"
errmsg:"internal atlas error checking things: Failure getting dbStats: read tcp 192.168.254.78:50064->192.168.254.78:27000: i/o timeout"
message:"internal atlas error checking things: Failure getting dbStats: read tcp 192.168.254.78:50064->192.168.254.78:27000: i/o timeout"
name:"MongoError"
Run Code Online (Sandbox Code Playgroud)

我已经搜索了一段时间,但找不到有关如何解决此问题的任何线索。

附加信息:

  • 将第二个操作添加到事务后,将引发该错误。

  • 如果我删除所有其他操作,而只留下一个(
    无关紧要),则工作正常。

  • 如果我更改操作顺序(更改为任何顺序),则错误
    仍在添加第二个操作上。

  • 如果所有操作都在同一个数据库和集合上执行,则工作正常

我的代码:

async function connect () {

if (dbClient !== null && dbClient.isConnected()) {
    console.log('Reusing db connection => ' + JSON.stringify(dbClient));
  } else {
      console.log('Connecting to database');
      dbClient = await MongoClient.connect(url, { useNewUrlParser: true });
      console.log('Successfully connected to database');
  }
} …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-atlas

6
推荐指数
1
解决办法
875
查看次数

如何将 Django ORM 连接到 mongo 图集?

我正在尝试使用 django 将我的 django 实例连接到 mongo db 集群。我已经从各种来源进行了检查,它越来越接近工作的方式是:

  • 安装 dnspython
  • 有以下DATABASES字典settings.py
DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'test',
        'HOST': 'mongodb+srv://mongo_usr:' + urllib.parse.quote('mypassword') + '@domain_assigned.mongodb.net/test?ssl=true&ssl_cert_reqs=CERT_NONE&retryWrites=true',
        'ENFORCE_SCHEMA': False
    }
}

Run Code Online (Sandbox Code Playgroud)

它确实找到了端点,但我收到了一个奇怪的错误:

pymongo.errors.ServerSelectionTimeoutError: connection closed,connection closed,connection closed

有没有人解决过这个问题?

django mongodb mongodb-atlas djongo

6
推荐指数
3
解决办法
6797
查看次数

如何查看弹性beanstalk实例的公共IP地址以将mongodb图集列入白名单

我正在尝试从运行在弹性 beantalk 上的服务连接到托管在 mongo atlas 上的数据库。我收到错误:

UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [youmaylike-shard-00-01-necsu.mongodb.net:27017] on first connect [MongoNetworkError: connection 5 to youmaylike-shard-00-01-necsu.mongodb.net:27017 closed]

我相信这种情况正在发生,因为我的服务的 IP 地址没有在地图集上列入白名单。我不确定如何获取我的服务的 IP 地址,我尝试运行eb ssh但我不确定它给我的是正确的值

amazon-web-services amazon-elastic-beanstalk mongodb-atlas

6
推荐指数
1
解决办法
5588
查看次数

mongodb图集中的集群和副本集有什么区别?

我正在学习 Mongodb 大学 M103 课程,在那里他们简要概述了集群和副本集是什么。根据我的理解,集群是一组服务器或节点。副本集是一组服务器或节点,所有这些服务器或节点都内置了复制机制,用于停机访问和更快的读取操作。

从这点看来,副本集是一种特定类型的集群,但我的困惑来自 MongoDB Atlas。在 mongoDB atlas 中,必须创建一个集群,这也是一个副本集吗?

这些术语在所有情况下都可以互换吗?

mongodb replicaset mongodb-replica-set mongodb-atlas

6
推荐指数
1
解决办法
1896
查看次数

Mongodb atlas:如何使用 Atlas 控制台的过滤器选项应用限制和排序

我正在使用 Mongodb Atlas,需要获取最后 10 条记录。为此,必须应用具有排序和限制选项的过滤器。在 mongo shell 中,我们是这样做的:

db.category.find().sort( { name: 1 } ).limit( 5 )
Run Code Online (Sandbox Code Playgroud)

或者

db.category.find().limit( 5 ).sort( { name: 1 } )
Run Code Online (Sandbox Code Playgroud)

如何使用 Mongodb Atlas 控制台的过滤器选项来获得所需的结果?我没有找到任何有关此的文档,是否在某处记录了如何使用过滤器选项?

mongodb mongodb-query mongodb-atlas

6
推荐指数
1
解决办法
525
查看次数

如何消除 MongoDB 中的查询目标:已扫描对象/返回数已超过 1000?

有一些问题1、2谈论MongoDB警告,但是,我的问题是另一种情况Query Targeting: Scanned Objects / Returned has gone above 1000

我们文档的架构是

{
    "_id" : ObjectId("abc"),
    "key" : "key_1",
    "val" : "1",
    "created_at" : ISODate("2021-09-25T07:38:04.985Z"),
    "a_has_sent" : false,
    "b_has_sent" : false,
    "updated_at" : ISODate("2021-09-25T07:38:04.985Z")
}
Run Code Online (Sandbox Code Playgroud)

该集合的索引是

{
    "key" : {
        "updated_at" : 1
    },
    "name" : "updated_at_1",
    "expireAfterSeconds" : 5184000,
    "background" : true
},
{
    "key" : {
        "updated_at" : 1,
        "a_has_sent" : 1,
        "b_has_sent" : 1
    },
    "name" : "updated_at_1_a_has_sent_1_b_has_sent_1",
    "background" : true
}

Run Code Online (Sandbox Code Playgroud)

之后的文档总数2021-09-24 …

indexing mongodb mongodb-atlas

6
推荐指数
1
解决办法
1万
查看次数

Mongo Atlas 随机消息:“BadValue:SCRAM-SHA-256 身份验证已禁用”

我在 Mongo Atlas“访问历史记录”视图中收到以下随机消息:

\n

“BadValue 失败:SCRAM-SHA-256 身份验证已禁用”

\n

此消息附加到我在 AWS 托管的应用程序 IP。我基本上首先收到此消息,然后在同一时间戳收到成功消息。

\n
    \n
  • 实例 MongoAtlas - 集群层 M40 一般
  • \n
  • 副本集 - 3 个节点
  • \n
  • 驱动猫鼬:\xe2\x80\x9c^6.5.1\xe2\x80\x9d
  • \n
  • 根据 Atlas 视图的 Mongo 版本:5.0.12
  • \n
  • Mongo 字符串 URI:mongodb+srv://xyz:ABCDEFGH@clusterabc.abcde.mongodb.net/my_db
  • \n
\n

连接到 Mongo 时会出现这个问题吗?

\n

mongoose mongodb mongodb-atlas

6
推荐指数
0
解决办法
988
查看次数