在我的mongodb中,一个数据库包含了这些集合,但是当我运行Robomongo时,我的数据库的0.8.5集合未显示(Robomongo 0.8.5(文件浏览器)的左侧).
如果我在Robomongo 0.8.5中运行以下查询,它会显示所有集合.
db.stats()
Run Code Online (Sandbox Code Playgroud)
另一个显示集合的查询
db.collectionName.find()//it shows all documents in collection
Run Code Online (Sandbox Code Playgroud)
请为此问题提出解决方案.
我有个问题.我正在使用带有RHEL的Red Box(Red Hat Enterprise Linux),我已经安装了MongoDB和Oracle-XE数据库.
我正在尝试从Windows操作系统连接到我的数据库.我可以使用SQL Developer连接到我的oracle DB,但是当我尝试使用Robomongo连接到我的MongoDB时,我无法连接.我不明白为什么.
我在两种情况下都指定了端口转发,为什么一个工作而另一个不工作?
我尝试过以下方法:
address: localhost port: 27017
address: 127.0.0.1 port: 27017
address: mongo.localhost port: 27017
Run Code Online (Sandbox Code Playgroud)
和其他人......为什么我不能与Robomongo联系?
我有一个在localhost:3000上运行的Meteor应用程序.
尝试使用Robomongo连接到它会导致"您跳过授权"失败.
.
我的设置与此答案中发布的设置相同,因此我没有触及任何其他配置选项卡.
我是MongoDB的新手,我正在尝试在集合中查找文档A,其中field _id等于excel_template来自集合的字段B.
var r = db.B.find({"name":/.*aco.*/}, {excel_template:1, _id:0}).excel_template;
db.A.find({"_id":{$eq: "${r}" }})
Run Code Online (Sandbox Code Playgroud)
但我很难做到这一点.它给了我一个结果,但没有给我任何结果.任何建议将不胜感激
我在一个集合中有以下文档:
输入:
{
"_id" : ObjectId("***"),
"oldItems" : [
{
"_id" : ObjectId("***"),
"name" : "ItemId***",
"nestedItemsToExtract" : { }
}
]
}
Run Code Online (Sandbox Code Playgroud)
我需要迭代oldItems数组并使用另一个数组创建一个结果输出文档,其值应该从原始数组映射.
输出:
{
"_id" : ObjectId("***"),
"newItems" : [
{
"oldItemId" : "***", // String Value Of Parent's / Mapped Item Id aka ObjectId.toString()
"_id" : ObjectId("***") // New ObjectId Here aka ObjectId()
}
]
}
Run Code Online (Sandbox Code Playgroud)
如何将映射的(旧)_idObjectId值转换为String,但为_id结果数组中的(new)属性生成新的ObjectId ?
编辑:
我已经设法找到一种通过"{ $literal: ObjectId() }"表达式生成新的ObjectId值的解决方法.我更正了我的"输出"代码段:
use DB_NAME_HERE
db.getCollection('COLLECTION_NAME_HERE').aggregate([
{ $match: {} …Run Code Online (Sandbox Code Playgroud) 当我在ubuntu 16.04版本中启动robo3t时它没有打开,错误显示如下
错误:
sony@sony:~/Documents/installed/robo3t-1.1.1-linux-x86_64-c93c6b0/bin$ ./robo3t
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: xcb.
Reinstalling the application may fix this problem.
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud) 当我将 Robo 3T 用于 MongoDB 时,我是否可以将我的查询历史脚本存储在 Robo 3T 中,就像 oracle 的 pl/sql developer?这是一个非常关键的功能,因为我经常需要检查我以前的查询输入。
我正在将 mLab 从 Heroku 迁移到 MongoDB Atlas。作为步骤之一,我想检查是否可以连接到新创建的集群。我将Robo3T(以前称为 Robomongo)用于 Heroku mLab 实例。但它不适用于 Atlas。从 URL 创建连接时出现以下错误:
Cannot connect to replica set "SampleProject"[cluster-abcd12ef-shard-00-00.a0b1c.mongodb.net:27017].
Set's primary is unreachable.
Reason:
Failed to initialize MongoWorker. Reason: connect failed
Run Code Online (Sandbox Code Playgroud)
试图调整设置,但那里的一切看起来都正确,就像 Heroku 一样,唯一的主机和端口不同。
我需要比较 mongo db 中的两个对象集合。我的 shell 脚本如下所示:
//Both arrays have 367 pretty big objects.
var list1 = db.collection1.find({..condition..}).toArray();
var list2 = db.collection2.find({..condition..}).toArray();
function compare(left, right){
var l = left.data.NP;
var r = right.data.NP;
if(JSON.stringify(l) === JSON.stringify(r)){
return 'Equal';
} else {
return 'Not equal';
}
}
list1.forEach(function(item, index){
print(index, compare(item,list2[index]));
})
Run Code Online (Sandbox Code Playgroud)
我在 Robomongo 中执行这个脚本。但我有一个问题。结果,367 项中仅打印了 8 项。Robomongo 没有显示任何错误消息。当我使用
print(item);
Run Code Online (Sandbox Code Playgroud)
在 foreach 内部,一切正常,所有 367 个对象都被打印出来。我还尝试使用 Deep Diff 库进行对象比较,但得到了相同的结果 - 仅打印了 367 个项目中的 12 个项目。
我认为问题出在内存消耗上,但我不知道如何处理它,也不知道为什么 Robomongo 不打印任何错误。
我尝试仅迭代游标,但没有帮助。
为什么 foreach 不能迭代所有项目以及如何修复它?
[更新 …
我正在尝试按照以下说明使用 Robo 3T 连接到 MongoDB Atlas 数据库:
https://mrvautin.com/connecting-to-mongodb-atlas-with-robo-3t/
我收到如下所示的 SSL 隧道故障消息:
我已经验证我可以使用 Mongo shell 从命令行连接到这个数据库:
因此,我的防火墙或白名单设置似乎不是问题。(对于此数据库,白名单允许来自任何 IP 地址的传入连接。)
我曾尝试在 Robo 3T 中同时使用“直接连接”和“副本集”作为“类型”,但每次都出现相同的错误。
我非常有信心提供正确的用户名和密码。
如何诊断和解决此问题?