【问题标题】:I have a query statement using a string array in mongodb我在 mongodb 中有一个使用字符串数组的查询语句
【发布时间】:2019-03-23 02:02:29
【问题描述】:
var chatIds = ["XWNGstSqtDprdMqnC",
               "twqExeDofj5J492Q6", 
               "M77enWFMDCABKx3Goq5gjsToaBLDLcRs7b", 
               "aSKprL5omjCEiR4nSq5gjsToaBLDLcRs7b"]

var dbname = 'rocketchat';
var db = db.getSiblingDB(dbname);

for (var i=0; i < chatIds.length; i++) {
    var cursor = db.rocketchat_message.find({"rid":chatIds[i]})
    printjson(cursor.next());
}

您好,我在为 mongodb 编写 JavaScript 时出错。 上面的 JavaScript 文件 它是通过“mongo --quiet chat_content.js”执行的。 输出数组的第一个结果,但是第二个出现如下错误。

{
    "_id" : "9yvRFCTi4YZzGdgH7",
    "t" : "r",
    "rid" : "XWNGstSqtDprdMqnC",
    "ts" : ISODate("2017-01-17T08:25:24.073Z"),
    "msg" : "it_team",
    "u" : {
        "_id" : "twqExeDofj5J492Q6",
        "username" : "sumin_kim"
    },
    "groupable" : false,
    "_updatedAt" : ISODate("2017-01-17T08:25:24.073Z")
}
2018-10-18T18:23:44.375+0900 error hasNext: false at 
src/mongo/shell/query.js:127
failed to load: chat_content.js

我想要的输出是通过循环输出所有的对话,但是在编写JavaScript时似乎有一些我不明白的地方。非常感谢您的帮助。

【问题讨论】:

    标签: javascript mongodb


    【解决方案1】:

    这不是javascript语法错误,而是我在mongodb shell方法中没有注意到的问题。 这是适合我的情况的正确方法。

    db.rocketchat_message.find({"rid":{$in:["XWNGstSqtDprdMqnC", "twqExeDofj5J492Q6"]}}).pretty();
    

    我已经引用了这个thread

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-13
      • 2020-08-29
      • 1970-01-01
      • 2018-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多