最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

猫鼬findbyid()返回null

IT培训 admin 6浏览 0评论

猫鼬findbyid()返回null

我正在尝试通过其ID在mongo数据库中查找记录

无论我使用findbyid(),findone(id,...),它都将返回null

这是我的代码。解决方案是什么?

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/Movie', {useNewUrlParser: true})
.then(() => console.log('Connected to Databse'))
.catch(err => console.err('Could not connect to MongoDB', err));

var ObjectId = require('mongodb').ObjectID;

const Schema = new mongoose.Schema({
    name: String,
    author: String,
    tags: [String],
    date: Date, 
    isPublished: Boolean,
    price: Number
});

const Data = mongoose.model('Datas', Schema);

async function updateData(id){
const result = await Data.findById(id);
console.log(result);
}
updateData('5a6900fff467be65019a9001');
回答如下:

我有同样的问题。我的数据库集合中的_id是String。启用猫鼬调试require('mongoose').set('debug', true)后,除非在架构中定义id,否则我发现猫鼬查询ObjectId("yourId")_id。为了解决该问题,我必须在猫鼬模式中添加_id:String

const MyDataSchema = new Schema({
  _id: String,
...
...
}

猫鼬findbyid()返回null

我正在尝试通过其ID在mongo数据库中查找记录

无论我使用findbyid(),findone(id,...),它都将返回null

这是我的代码。解决方案是什么?

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/Movie', {useNewUrlParser: true})
.then(() => console.log('Connected to Databse'))
.catch(err => console.err('Could not connect to MongoDB', err));

var ObjectId = require('mongodb').ObjectID;

const Schema = new mongoose.Schema({
    name: String,
    author: String,
    tags: [String],
    date: Date, 
    isPublished: Boolean,
    price: Number
});

const Data = mongoose.model('Datas', Schema);

async function updateData(id){
const result = await Data.findById(id);
console.log(result);
}
updateData('5a6900fff467be65019a9001');
回答如下:

我有同样的问题。我的数据库集合中的_id是String。启用猫鼬调试require('mongoose').set('debug', true)后,除非在架构中定义id,否则我发现猫鼬查询ObjectId("yourId")_id。为了解决该问题,我必须在猫鼬模式中添加_id:String

const MyDataSchema = new Schema({
  _id: String,
...
...
}

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论