Получите данные из mongodb, построенного с использованием моделей mongoose, а узел с помощью python, используя PyMongo - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть база данных, созданная с использованием node и mongodb (используя mongoose), которая используется для поддержки веб-сайта. В основном это использует схемы. Теперь мне нужно запросить эту базу данных в Python, используя колбу, и я использую Pymongo для этого. Эта база данных имеет только одну коллекцию.

app = Flask(__name__)
app.config["MONGO_DBNAME"] = databaseName
app.config["MONGO_URI"] = databaseURL

mongo = PyMongo(app)
db = mongo.db
collection = db[collectionName]
collection_list = collection.find({'model':'familySchema'})

#There is only one entry related to 'familySchema' model. 

for document in collection_list:
    print(document)

# This is what gets printed
# {'_id': ObjectId('5a8d144970512751d3d9e0d9'), 'model': 'familySchema', 'field': '_id', 'count': 95, '__v': 0}

Итак, когда я запрашиваю базу данных, я получаю результат, как показано выше. Клавиша count, отображающая 95, является правильной, поскольку есть 95 записей, связанных с моделью (я добавил их на веб-сайте). Но я не могу получить к ним доступ. Все, что я получаю, это название модели и количество записей в ней. Я хочу получить доступ ко всем записям с использованием этой модели. Я новичок в использовании монго и мне нужна помощь в этом. Любые предложения о том, как это сделать?

В узле это делается так.

autoIncrement = require('mongoose-auto-increment');
var UnknownSchema = new Schema({
    pictureType: {type: String},
    location: {type: String},
    leafname: {type: String},
    createduser: {type: String},
    lastedituser: {type: String},
    timestamp: { type: Date, default: Date.now},
});
UnknownSchema.plugin(autoIncrement.plugin,'UnknownSchema');

var addUnknown=mongoose.model('addUnknown', UnknownSchema);


//It is fetched like this
var getUnknown=function(req,res){
    addUnknown.find({},function (err,data) {
        if(err){
            res.send(err);
        }else {
            res.send(data);
        }
    })
};
...