Как разделить строку в javascript при работе с mongodb

#javascript

#javascript

Вопрос:

Я работаю над MongoDB, чтобы получить некоторый вывод, и для этого я пишу javascript для передачи в оболочку mongo.

У меня есть один объект, в котором одно значение имени поля представляет собой массив некоторых идентификаторов, и формат этих идентификаторов следующий

DBRef(«Intention», ObjectId(«53247206e4dee78d74b9e91»))

Я должен получить 5a3247206e4dee78d74b9e91 из приведенной выше записи, чтобы передать ее некоторым другим запросам.

мой сценарий выглядит следующим образом

 var cursor = db.coll.find({_id: "797276b3-d86b-48cd-ac1d-5d15ccd776da", "accountId" : "abc"})
cursor.forEach(function(w){
    id=w._id;
    title=w.title;
    response=w.message;
    intentions = [];
    entities = [];
    var cursor2 = db.coll2.find({_id:id});
    cursor2.forEach(function(x){
        if(x.intentions != undefined)
        {
            for( i = 0; i < x.intentions.length; i  )
            {
                var a = x.intentions[i];
                print(a);
                var arr = a.split(""");
                print(arr);
                //cursor3 = db.coll3.find({_id:x.intentions[i]});
                //print(cursor3);
            }
        }
    })//cursor2
})//cursor
  

когда я запускаю этот скрипт следующим образом

/mnt/deployment/mongodb/монгодб-linux-x86_64-rhel62-3.4.2/bin/mongo db-name intentions.js

это выдает мне следующую ошибку:

Версия оболочки MongoDB v3.4.2 подключение к: mongodb: //127.0.0.1:27017/db-name Версия сервера MongoDB: 3.4.2 DBRef(«Intention», ObjectId(«5a3247206e4dee78d74b9e91»)) 2019-03-11T05:41:50.251 0000 E ЗАПРОС [thread1] Ошибка типа: a.разделение не является функцией : Намерения.js:19:17 DBQuery.prototype.forEach@src/mongo/shell/query.js:501:1 Intentions.js:12:1 DBQuery.prototype.forEach@src/mongo/shell/query.js:501:1 Не удалось загрузить Intentions.js:3:1: Intentions.js

Комментарии:

1. вы должны использовать $split оператор при агрегировании

2. @DakshMiglani но я пишу отдельный javascript, чтобы узнать, как javascript будет определять $ split, и я просто хочу просто разделить всю строку. с двойными кавычками в качестве разделителя.

3. Пожалуйста, добавьте свою схему cursor2. каков тип намерений?

4. @AZ_ intentions имеет тип array, и каждое значение этого массива имеет следующий формат DBRef(«Intention», ObjectId(«5a3247206e4dee78d74b9e91»))

5. хорошо, split — это метод string, не относящийся к объекту MongoDB id, поэтому вам нужно получить значение id, т. е. 5a3247206e4dee78d74b9e91?