标签: mongodb-shell

你如何对mongodb中的数组进行AND查询?

我有一个带有标签的数组,这是一个文件的一部分,例如["红色","绿色","蓝色","白色","黑色"]

现在我想找到所有有红色和蓝色的文件.

mongodb mongodb-shell

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

通过代理的 AWS DocumentDB

我有一个AWS DocumentDB设置,我可以使用以下命令通过我的跳转框连接到:

mongo --ssl --host aws-host:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>
Run Code Online (Sandbox Code Playgroud)

我希望能够通过 localhost 连接到它进行一些测试。我无法直接连接,所以我试图从我的跳跃中打开一个隧道:

ssh -i ~/.ssh/my-key user@my_jump -L 27017:aws-host:27017 -N
Run Code Online (Sandbox Code Playgroud)

之后,我尝试了基本的 MongoDB 连接命令:

mongo --ssl --host localhost:27017 --sslCAFile rds-combined-ca-bundle.pem --username my_user --password <insertYourPassword>
Run Code Online (Sandbox Code Playgroud)

我收到一个我理解的错误:

服务器证书与主机名不匹配。主机名:本地主机与 SAN 不匹配

我尝试export http_proxy使用http://my_jump:27017并再次使用上面的命令,但没有成功。

有关如何连接的任何建议或帮助?

ssh-tunnel mongodb-shell aws-documentdb

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

MongoDB Shell:"$或"查询和explain()出错

我正在尝试对MongoDB"$或"查询进行一些分析,而我在Mongo shell中遇到'explain()'命令时遇到问题.当我使用find命令运行我的查询时,它会工作并返回一条记录,如预期的那样.当我在find()的末尾添加'explain()'时,我收到以下错误:

未捕获的异常:错误:{"$ err":"无效的运算符:$或","code":10068}

我正在尝试以下查询:

db.people.find({"query" : 
                   {"$or" : [ 
                       {"site" : "mysite", "site_id" : "587125722"}, 
                       {"user_id" : ObjectId("4fb811aae4b0b628b485a58d")}
                   ]}, 
                "$orderby" : { "global_id" : 1, "user_id" : 1}
                })
Run Code Online (Sandbox Code Playgroud)

如果我将"$或"更改为"或",则explain()工作正常,但查询返回0结果.我的印象是他们的语法应该是相同的,有或没有explain(),所以我做错了什么?我正在使用2.0.4版.感谢任何可能提供帮助的人.

mongodb mongodb-shell

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

在shell中重新分配MongoDB _id

我正在尝试使用MongoDB来重新分配ID.但是,它不是将ID设置为等于我分配的值,而是创建一个新的ObjectId.我如何分配自己的ID?

> db.pGitHub.find();
{ "_id" : ObjectId("516f202da1faf201daa15635"), 
     "url" : { "raw" : "https://github.com/Quatlus", 
     "domain" : "github.com", "canonical" : "https://github.com/quatlus" } }
{ "_id" : ObjectId("516f202da1faf201daa15636"), 
      "url" : { "raw" : "https://github.com/Quasii", 
      "domain" : "github.com", "canonical" : "https://github.com/quasii" } }

> db.pGitHub.find().forEach(function(myProfile) {   
       var oldId = myProfile._id;   
       myProfile._id = 'exampleid';   
       db.pGitHub.save(myProfile);   
       db.pGitHub.remove({_id: oldId}); 
  });

> db.pGitHub.find();
{ "_id" : ObjectId("516f204da1faf201daa15637"), 
      "url" : { "raw" : "https://github.com/Quatlus", 
      "domain" : "github.com", "canonical" : "https://github.com/quatlus" } }
{ "_id" : ObjectId("516f204da1faf201daa15638"),  
      "url" : { …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-shell

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

mongodb shell登录 - 密码包含特殊字符,如#和&amp;

我尝试使用 mongodb shell 登录 mongodb 数据库,如果密码包含 # 或 & 等特殊字符,则身份验证失败。

mongo mongo.cloud.com:8888/database -u username -p a7IF@WV^#66!

mongo mongo.cloud.com:8888/database -u username -p a7IF@WV^&66!
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 Windows 命令提示符。

shell command-prompt mongodb mongodb-shell

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

从MongoDB shell生成带有新GUID的新行

我在带有GUID类型密钥的MongoDB集合中有一些文档,我希望能够使用shell将它们复制到具有新GUID的新行.我试过这个:

db.schedules.find().forEach(function(x) { 
    x._id = null; 
    db.schedules.save(x); 
});
Run Code Online (Sandbox Code Playgroud)

我希望_id字段在我将其设置为null后自动生成,但当然这很天真.如果有的话,我怎样才能在shell中生成新的GUID?

UPDATE

显然无法从shell生成GUID.我最终在C#中编写了一个迷你脚本,以便使用Mongo C#驱动程序.

mongodb nosql mongodb-shell

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

当名称包含' - '时,无法从shell访问MongoDB集合

我在MongoDB 2.6.9中有一个名为GoldenGlobes-emotion的集合我发现我无法从MongoDB shell访问此集合当我尝试访问该集合时,例如

db.GoldenGlobes-emotion.findOne()
Run Code Online (Sandbox Code Playgroud)

我总是得到这个:

ReferenceError: emotion is not defined
Run Code Online (Sandbox Code Playgroud)

但是当我使用PyMongo访问Python的集合时,它运行良好.这是一个shell bug吗?或者' - '是保留字符?

mongodb mongodb-shell

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

mongodb shell 登录 - 密码包含特殊字符,例如 -(连字符)和 '(单引号)

我正在尝试使用 mongodb shell 登录 mongodb 数据库,如果密码包含任何特殊字符,例如 -(连字符) 或 '(单引号) ,则会出现错误 - Error parsing command line: unrecognised option '-8B'df5='

mongo -u username -p -8B'df5= --authenticationDatabase admin
Run Code Online (Sandbox Code Playgroud)

请帮忙

linux shell command-line mongodb mongodb-shell

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