我有一个带有标签的数组,这是一个文件的一部分,例如["红色","绿色","蓝色","白色","黑色"]
现在我想找到所有有红色和蓝色的文件.
我有一个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并再次使用上面的命令,但没有成功。
有关如何连接的任何建议或帮助?
我正在尝试对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来重新分配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 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 命令提示符。
我在带有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 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 shell 登录 mongodb 数据库,如果密码包含任何特殊字符,例如 -(连字符) 或 '(单引号) ,则会出现错误 - Error parsing command line: unrecognised option '-8B'df5='。
mongo -u username -p -8B'df5= --authenticationDatabase admin
Run Code Online (Sandbox Code Playgroud)
请帮忙