我在mongodb中有一个使用字符串数组的查询语句

时间:2018-10-18 09:27:54

标签: javascript mongodb

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时似乎有些不了解。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

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

我已经引用了这个thread