标签: mongodb-3.6

我们如何引用 MongoDB 中的集合?

这是我在这个论坛上的第一篇文章。我有 RDBMS 背景,想学习 MongoDB,这将帮助我将应用程序迁移到 MongoDB。我正在创建两个集合(客户和地址)。

客户收藏

具有姓名、性别、城市、国家、电话、地址等通用信息(应引用另一个集合)。

地址采集

有一系列信息,如当前地址、办公室地址、邮寄地址。我想知道如何添加对另一个集合的引用?考虑到这种情况,客户集合将有一个地址文档,该文档必须包含对地址集合中 id 的引用。

如果有人能给我提供这个模型的示例。这会很棒。先感谢您。

mongodb database-design mongodb-3.6

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

MongoDB GridFS 将文件大小增加了三倍

我真的很喜欢使用 mongodb 来存储我的数据,最近我尝试了 GridFS,它确实适合我的用例。

我的问题是空间要求,这看起来很奇怪。我在 Amazon S3 中有大约 107GB 的图像,大约有 100 万个文件(所有图像,大部分是小图像)。我制作了一个简单的 Java 项目,从 S3 下载图像并将它们插入到两个单独的 MongoDB GridFS 集合(单服务器、3.6.5、64 位、Windows Server 2016)中。问题是,当上传/下载完成时,GridFS 集合在服务器上占用超过 300GB 的存储空间。对于此类收藏来说,这是可以接受的还是我应该担心三倍的尺寸?

注意:我只是使用 Java Mongo 驱动程序(Spring Boot)插入图像,没有任何重大更改,问题出在图像块上。我不删除或更新任何图像(不过,我为 MD5 字段定义了唯一索引,以忽略图像重复),因此压缩和修复不会更改集合大小。据我所知,集合并没有过度预分配(我不认为我的问题与此类似:Huge size on mongodb's gridfs. Should I Compact?

此外,目前它是单个 mongodb 服务器,没有副本集。

非常感谢您的帮助!

mongodb files mongodb-3.6

5
推荐指数
1
解决办法
1862
查看次数

节点不在主或恢复状态

我的配置文件是:

systemLog:
    destination: file
    logAppend: true
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db
    journal:
        enabled: true
replication:
   replSetName: "rs0"
net:
   bindIp: 127.0.0.1
   port: 27017
security:
     authorization: enabled
Run Code Online (Sandbox Code Playgroud)

所以,我通过mongod流程成功连接: 在此处输入图片说明

然后连接mongo并尝试打开数据库和集合: 在此处输入图片说明

并得到一个错误:

2018-07-07T15:40:25.092+0300 E QUERY    [thread1] Error: error: {
        "operationTime" : Timestamp(0, 0),
        "ok" : 0,
        "errmsg" : "node is not in primary or recovering state",
        "code" : 13436,
        "codeName" : "NotMasterOrSecondary",
        "$clusterTime" : {
                "clusterTime" : Timestamp(0, 0),
                "signature" : {
                        "hash" : BinData(0,"FshG5mLBvAQUizPHXGfCITV4ZKA="),
                        "keyId" : NumberLong("6573732769795407873")
                }
        } …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-3.6

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

无法导入具有重复字段的 mongodb 数据库

我正在尝试导入 mongodb 数据库,并且我一直在使用 mongorestore 命令,导入开始时没有问题,直到出现错误:失败:dbprod.mys_account:创建集合时出错 dbprod.mys_account:运行创建命令时出错:BSON 字段'OperationSessionInfo.create' 是重复字段

我已经尝试过 --drop 选项但没有成功,我从未与 mongodb 合作过……我必须澄清一下,我使用 mongodump 将它保存在 mongodb 2.4 中,并尝试为 mongodb 3.6 导入

mongodb mongodump mongorestore mongodb-3.6 mongodb2.4

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