【问题标题】:Print result of find() in a MongoDB script [duplicate]在 MongoDB 脚本中打印 find() 的结果 [重复]
【发布时间】:2015-04-22 12:14:06
【问题描述】:

我编写了一个非常简单的脚本来打印工作脚本的某些状态的计数。但是,我无法打印我使用 find() 查询和预测的错误消息。这是脚本:

conn = new Mongo();
db = conn.getDB("AABackend");
...
print("Error messages:");
print(db.jobs.find({"state":"failed"}, {error_message:1}));

这是最后一行不起作用。我希望是这样的:

{ "_id" : ObjectId("55377e5293671115faf44b15"), "error_message" : "foobar" }

但我明白了

DBQuery: AABackend.jobs -> { "state" : "failed" }

我在 MongoDB 文档中找不到关于此的内容,但只是提示会很有帮助。

【问题讨论】:

  • 你可能需要使用 findOne() 方法而不是 find() 因为后者只返回一个光标而不是实际文档。跨度>
  • 您当前正在打印游标的内容而不是查询的结果(请参阅:Printing mongodb shell output to File)。
  • 感谢链接,确实是重复的。我没有意识到这个答案适合我的用例,因为我对这个数据库完全陌生,尤其是 MongoDB 的东西 :)

标签: mongodb


【解决方案1】:

我不确定这是哪个驱动程序,但在 Node.js 中,它会返回光标对象,我认为这就是您要打印的内容。您正在打印光标对象而不是结果。这可能是它打印 DBQuery 的原因:.......

在 Node.js 中我会这样做:

db.jobs.find({"state":"failed"}).toArray(function(err, docs) {
    console.log(docs);
};

基本上尝试在你的语言驱动中找到如何从游标对象中获取结果 --> 相当于 toArray()

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-01
    • 2012-01-27
    • 2016-10-31
    • 2016-09-19
    • 2023-03-17
    • 2021-03-18
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多