Проверьте сохраненный массив MongoDB / Mogoose - PullRequest
0 голосов
/ 12 июня 2018

Я не знаю, как использовать метод findOne после операции сохранения MongoDB / Mongoose.

    // itemrefSchema.js
    const itemrefSchema = new mongoose.Schema({
        pubRef: [{
          type: mongoose.Schema.Types.Mixed,
          ref: 'pubRefs'
        }],
        itemSpec: [{
          type: mongoose.Schema.Types.Mixed,
          ref: 'pubRefs'
        }],
        munInspect: [{
          type: mongoose.Schema.Types.Mixed,
          ref: 'pubRefs'
        }]
      },
      { minimize: false }
    );
    const ItemRef = mongoose.model('itemRefs', itemrefSchema);
    module.exports = ItemRef;

// modelTest.js
it.only('find a record', (done) => {
        let reference = new ItemRef({
            pubRef: [{'publication': 'military pub 1'}, {'address': '../media/a001.pdf'}],
            itemSpec: [{'publication': 'item spec 1'}, {'address': '../media/a001spec.pdf'}],
            munInspect: [{'publication': 'mun inspection 1'}, {'address': '../media/a001inspec.pdf'}]
        });
        reference.save().then(() => {
            /*ItemRef.
                find().
                where('pubRef').equals('pulication').
                select('publication address').
                exec(() => {
                    console.log(callback);
                    done();
                });
            */
        //});

            ItemRef.findOne({'ItemRef': 'pubRef'})
                .then((result) => {
                    console.log(result);
                    //assert(result.publication === 'DD Form 626');
                    done();
                });

            //console.log(result);
            //done();
        });
    });

Я знаю, что справочные данные сохраняются, если я раскомментирую свой console.log(result)и закомментируйте метод findOne.Я получаю данные из обещания Mongoose, которое выглядит следующим образом:

{ _id: 5b1ef810e8609509bc81fa19,
  createdAt: 2018-06-11T22:30:40.216Z,
  updatedAt: 2018-06-11T22:30:40.216Z,
  __v: 0,
  munInspect:
   [ { publication: 'mun inspection 1' },
     { address: '../media/a001inspec.pdf' } ],
  itemSpec:
   [ { publication: 'item spec 1' },
     { address: '../media/a001spec.pdf' } ],
  pubRef:
   [ { publication: 'military pub 1' },
     { address: '../media/a001.pdf' } ] }
    √ find a record (150ms)

Я пытаюсь построить это утверждение, выбрав любой из munInspect и убедившись, что MongoDB сохранил содержимое.Когда я выполняю метод findOne, я получаю ответ 'null'.Любые предложения будут полезны.Где я ошибся?

1 Ответ

0 голосов
/ 12 июня 2018

вы можете попробовать как показано ниже с функцией сохранения

reference.save().then((saveresult) => {
    //or you can directly print result like below

    console.log(saveresult);
    ItemRef.findOne({ '_id': saveresult._id })
        .then((result) => {
            //Now you can check your desired result
            console.log(result);
            done();
        });
});
...