Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Express.js &猫鼬查询问题

Express.js &猫鼬查询问题
EN

Stack Overflow用户
提问于 2017-07-07 17:42:12
回答 2查看 598关注 0票数 0

我试图使用MongoDB查询_id的单个文档。我使用的是猫鼬(版本: 4.11.1)。当我尝试运行查询时,我将_id作为localhost:3000/poi/one/595ef9c8c4891179f8b4bbfb路由上的URL传递。

当我点击enter时,浏览器将继续加载,永远不会完成。我能够在控制台中看到“获取一个POI”。但再也见不到其他东西了。

我正在使用mLab托管我的DB。里面只有一份文件。

mLab文档:

这里是我的查询代码:

代码语言:javascript
运行
AI代码解释
复制
let express = require('express');
let router = express.Router();

let {Poi} = require('../models/db-model');

router.get('/one/:id', (req, res, next) => {
    console.log('getting one POI');
    Poi.findOne({_id: req.params.id}).exec(function (err, poi) {
        if (err) {
            res.send('error occurred')
        }
        else {
            console.log(poi);
            res.send(poi)
        }
    });
});

My数据库模型:

代码语言:javascript
运行
AI代码解释
复制
const mongoose = require('mongoose');

// point of interest schema
let poiSchema = mongoose.Schema({
    name: {
        type: String,
        required: true,
        minlength: 1,
        trim: true,
    },
    url: {
        type: String,
        required: true
    },
    address: {
        type: String,
        required: true
    },
    cost: {
        type: Number,
        required: false
    }
});

// instantiate models
let Poi = mongoose.model('Poi', poiSchema);

// export models
module.exports = {Poi};

我已经困在这个问题上好几个小时了,根本搞不清是什么问题。

编辑:

猫鼬配置:

代码语言:javascript
运行
AI代码解释
复制
const mongoose = require('mongoose');
const config = require('../app-config.json');

mongoose.Promise = global.Promise;

// connect to mLab Collection
mongoose.connect(config.dbUri);

module.exports = {mongoose};
EN

回答 2

Stack Overflow用户

发布于 2017-07-07 17:51:29

findOne的官方文档中,Mongoose建议在通过_id字段查询时使用Model.findById()方法。您可以在这里专门阅读findById的文档:Model.findById

从本质上说,它看起来应该是:

代码语言:javascript
运行
AI代码解释
复制
Poi.findById(req.params.id).exec(function (err, poi) {
  // ...
票数 0
EN

Stack Overflow用户

发布于 2017-07-09 18:09:59

你问题的答案很简单。

虽然req.params.id是一个String,但它并不等于mongo生成的ID。为了按id查询,您必须将String转换为ObjectId,这可以通过多种方式完成。

如果模块中需要mongoose,则只需通过to:mongoose.Types.ObjectId(req.params.id)将字符串转换为对象id,然后将id作为对象而不是字符串,就可以成功地进行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44981708

复制
相关文章
手写Express.js源码
上一篇文章我们讲了怎么用Node.js原生API来写一个web服务器,虽然代码比较丑,但是基本功能还是有的。但是一般我们不会直接用原生API来写,而是借助框架来做,比如本文要讲的Express。通过上一篇文章的铺垫,我们可以猜测,Express其实也没有什么黑魔法,也仅仅是原生API的封装,主要是用来提供更好的扩展性,使用起来更方便,代码更优雅。本文照例会从Express的基本使用入手,然后自己手写一个Express来替代他,也就是源码解析。
蒋鹏飞
2020/11/04
5.5K0
手写Express.js源码
三星放弃自研CPU架构,转向投入GPU研发项目
三星提交给美国德克萨斯州劳动委员会的文件显示,奥斯汀半导体工厂研发部门计划于12月31日关闭,并解聘该部门的290名员工,其他近3000名员工则不受影响。对此,发言人Michele Glaze证实了这一消息,并称此举是一个放眼和评估未来业务做出的艰难选择。
镁客网
2019/11/07
4210
雷布斯变猫布斯,皮卡丘变狗卡丘:英伟达最新AI开源,万物换脸只凭一张图 | Demo
虽说同是图到图的翻译,同是无监督,这只AI和马变斑马的前辈非常不同。前辈只能在自己见过的动物之间做翻译。训练的时候,看过许多马,也看过许多斑马;
量子位
2019/05/16
5490
雷布斯变猫布斯,皮卡丘变狗卡丘:英伟达最新AI开源,万物换脸只凭一张图 | Demo
天猫小店、京东小店的问题分析
新零售是指企业以互联网为依托,通过运用大数据、人工智能等技术手段,对商品的生产、流通与销售过程进行升级改造,并对线上服务、线下体验以及现代物流进行深度融合。简单来说,新零售就是以大数据为驱动,通过新科技发展和用户体验的升级,改造零售业形态。线上线下和物流结合在一起,才会产生新零售。
石云升
2022/08/25
4120
天猫小店、京东小店的问题分析
AI:是猫还是狗,这是个问题
如果你不喜欢小猫和小狗,你可能不知道他们具体是哪一种品种,但是一般来说,你都能区分出这是猫还是狗,猫和狗的特征还是不一样的,那我们如何用机器学习的方法训练一个网络区分猫狗呢?
不会飞的小鸟
2020/03/01
6671
研究表明:狗的神经元数是猫的两倍,狗或比猫聪明 | 黑科技
但脑袋大不代表神经元数就更多。 猫和狗,谁更聪明呢? Vanderbilt大学心理学和生物科学副教授Suzana Herculano-Houzel及其研究团队开发了一种新的神经解剖学方法,利用这种方法,研究团队可以测量和计算出猫和狗大脑皮层中的神经元数量。 在神经学领域,科学家们常用神经元的数量来描绘生物的智力水平。 对此,研究人员Herculano-Houzel表示:“我相信动物神经元的绝对数量,特别是在大脑皮层中。它们决定了他们内心精神状态的丰富程度,以及根据过去的经验对当下环境中可能发生的状况的预判能
镁客网
2018/05/30
9370
Express.js Tutorial: Build RESTful APIs with Node and Express | Mosh
在Youtube上看到Mosh的一篇关于使用Node和Express构建RESTful APIs的示例,对应的视频地址是:Express.js Tutorial: Build RESTful APIs with Node and Express | Mosh,作者Mosh的Youtube地址是:Programming with Mosh
ccf19881030
2020/05/18
1.7K0
ES查询常见问题
1 must嵌套should条件查询 curl -XGET 'xxx/xxx/_search?pretty' -H 'Content-Type: application/json' -d'{
YG
2018/05/23
7630
Python爬虫进阶必备 | 关于某查猫查询参数的加密逻辑分析
找到要分析的参数,通过首页的检索栏,输入企业名称关键字点击查询就可以抓到类似下面的两个包。
咸鱼学Python
2020/06/10
9810
留言模块,MySQL查询数据问题
PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL
张苹果
2022/09/22
1.6K0
留言模块,MySQL查询数据问题
SQLAlchemy in 查询空列表问题分析
会发现生成的语句中过滤条件是 WHERE account.id != account.id,使用PostgreSQL Explain ANALYZE 命令,
goodspeed
2020/12/22
1.9K0
SQLAlchemy in 查询空列表问题分析
MySQL 解决查询NULL的问题
题目很简单:有一个 Employee 表,表里有两个字段:id(职工号)、salary(工资)。要求查询第二大的工资数,展示项名为:SecondHighestSalary
用户7685359
2020/08/22
2.3K0
问题排查--Impala查询Decimal数据为NULL,Hive查询正常
目前,线上反馈一个问题:同一张表,使用Hive查询正常,但是使用Impala查询,返回的数据中,部分字段值为NULL。 我们使用impala执行了invalidate metadata xxx,排查了元数据不一致的问题,同时查看源文件,也排除了数据本身的问题。最终,通过在Impalad的web页面上查看该SQL的profile发现,其中存在如下的Errors:
skyyws
2022/05/20
1.7K0
问题排查--Impala查询Decimal数据为NULL,Hive查询正常
猫狗队列
题目 实现一个猫狗队列 // 宠物类 public class Pet { private String mType; public Pet(String type) { mType = type; } public String getType() { return mType; } } // 狗 public class Dog extends Pet { public Dog(String type) {
HelloVass
2018/09/12
6660
mybatis oracle 分页查询_oracle分页查询出现重复的问题
Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便。
全栈程序员站长
2022/11/08
2K0
Express.js 4,Node.js,MongoDB REST API 简易教程
教程内容 采用测试驱动开发的方式,开发一个简单的 REST API,包括基本的 POST/GET/PUT/DELETE 操作 先编写好针对各个接口的测试代码,包括: 调用post接口插入一个对象 调用get接口获取某个对象的数据 调用get接口获取集合数据 调用put接口更新某个对象数据 调用get接口获取更新后的对象 调用delete接口删除对象 然后针对第一个测试进行代码编写,写完后执行测试,第一个测试通过后,继续开发下一个,再进行测试,这样迭代进行 测试框架采用 Mocha,WEB框架采用 Expre
dys
2018/04/04
2.7K0
Express.js 4.0 有加入一個新的 Router 功能
Express.js 4.0 有加入一個新的 Router 功能,它就像一個迷你的應用程式,可以讓應用程式內部的路由撰寫更方便、更有彈性。 Express.js 在 4.0 版中有許多新的功能,其中一項主要的功能就是 Router,以下我們介紹如何使用 Router 功能來撰寫應用程式。 基本應用程式 首先建立一個 package.json 檔案,定義套件的相依資訊: { "name": "express-router-experiments", "main": "server.js",
前朝楚水
2018/04/03
1.1K0
Express.js 4.0 有加入一個新的 Router 功能
猫狗队列
实现一种狗猫队列的结构,要求如下: 用户可以调用add方法将cat类或dog类的实例放入队列中; 用户可以调用pollAll方法,将队列中所有的实例按照进队列 的先后顺序依次弹出; 用户可以调用pollDog方法,将队列中dog类的实例按照 进队列的先后顺序依次弹出; 用户可以调用pollCat方法,将队列中cat类的实 例按照进队列的先后顺序依次弹出; 用户可以调用isEmpty方法,检查队列中是 否还有dog或cat的实例; 用户可以调用isDogEmpty方法,检查队列中是否有dog 类的实例; 用户可以调用isCatEmpty方法,检查队列中是否有cat类的实例。
名字是乱打的
2022/05/13
3200
MySQL系列之派生查询别名问题
最近在做mysql sql兼容,原来是oracle的sql都要保证在mysql数据库运行 业务场景:原来是一个带有子查询的sql,在oracle是可以正常运行的,迁到mysql就发现报错了,报错信息如:
SmileNicky
2022/05/07
1.1K0
优化递归频烦查询数据问题
一般在我们做后台管理的时候都需要加载一个树,当然也有更好的方法,一般后端都是直接请求一个接口然后返回一个树,树一般都是递归调用的,根据父级一层层的往下查询,然后大部人都是这么做的。
技术从心
2020/07/08
1.4K0

相似问题

在Express.js中处理猫鼬查询错误

24

异步猫鼬查询的问题

10

猫鼬查询

17

express.js猫鼬种群2模型

16

JS -猫鼬DEL查询问题

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档