Почему этот запрос mongoose 'findOne' всегда возвращает ноль? - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь найти конкретный документ с mongoose в моем Cosmosdb с помощью этого запроса, описанного ниже.

const mongoose = require('mongoose');
var ObjectID = require('mongodb').ObjectID
const keys = require('../config/keys');
const Item = mongoose.model('items');

    const uploadToBlob = async (containerName, blobName, json, id) => {

        console.log('id', id)
        Item.findOne({ _id: id }, (foundItem) => {
            console.log(foundItem)
        });
        console.log('here')
        Item.findOneAndDelete({ name: blobName });
};

Я успешно могу найти документ при запросах, как показано ниже.


    const scanMongo = () => { 
    Item.find({
        _id: {
          $gt: ObjectID.createFromTime(Date.now() / keys.mongoPurgeInterval)
        }}, (err, foundItems) => {
        if(err) {
          console.log("Oops", err);
          return;
        }
        foundItems.forEach(item => {
            JSON.stringify(item)
            const blobName = item.name;
            json = "'"+item+"'"
            const id = item._id
            uploadToBlob(keys.containerName, blobName, json, id);
        });
    });
} 

Вот как выглядит объект, который я ищу, когда вытащил из запроса выше.

[ { _id: 5cabd5c6e16288230cba2cf6, name: 'test', value: 1, __v: 0 } ]

Для ударов, вот моя модель.

const mongoose = require('mongoose');
const { Schema } = mongoose;

const itemSchema = new Schema({
 name: String,
 value: Number,
});

mongoose.model('items', itemSchema);

Я озадачен.Любая помощь будет ругань.Спасибо !!!

1 Ответ

0 голосов
/ 22 апреля 2019

Да, первый параметр должен отлавливать ошибку.

Item.findOne({ _id: id }, (error, foundItem) => {
            console.log(foundItem)
...