MongoDB: Как я могу использовать значение find () для инициализации переменной с этим документом? - PullRequest
0 голосов
/ 07 апреля 2020

Итак, я изначально начал ссылаться на ObjectId документа в поддокумент.

Итак Тесты коллекция содержит частей в качестве подполя с массивом идентификаторов объектов из коллекции Parts .

Теперь я понял, что ссылки в No- SQL - это плохая идея. Поэтому я пытаюсь исправить это, заменив идентификаторы фактическими объектами из коллекции Parts .

Я пытаюсь сделать что-то подобное в оболочке MongoDB для одного теста (и позже для оставшихся):

db.tests.find({_id:ObjectId("5e8c332cda90ea049f4e209b")}).
forEach(function(e,i){
    e.parts.forEach(function(p,i){
        partdetails =  db.parts.find({_id:ObjectId(p)});
        e.parts[i] = e.parts[i].replace(p,partdetails);
    });
    db.tests.save(e);
});

с приведенным выше кодом, мои детали заменяются следующим:

DBQuery: xyz.parts -> { "_id" : ObjectId("5e82bdba51a7eb70402d835b") }

Как это исправить? Куда я иду не так? Мне не нужен запрос, я хочу, чтобы весь объект был инициализирован там вместо его значения массива.

...