MongoDB Aggregation Match ObjectId


声明:本文转载自https://my.oschina.net/alioveyu/blog/1549924,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

虽说Mongo是个非关系型数据库,但随着项目功能的拓展,表间关系逐渐变得复杂,我们有时候也需要使用一些类似于关系型数据库的功能来进行数据库操作,这就大大简化了我们的后端代码逻辑,聚合查询就应运而生。

出错

在查询中使用我们自定义的属性匹配文档的时候都没有什么问题,可是在使用_id属性匹配文档时匹配不成功,使用mongoose进行查询时的出错代码:

const mongoose = require('mongoose'),     User = mongoose.model('user');  User.aggregate([{     $match: {         _id: {$in: ['592eb5c443d5c897d8282c88']},     } }]).exec((err, user) => {     console.log(user.length);// 0 }); 

解决

匹配结果跟预想中的不一致,最后找问题发现是需要把普通的_id字符串转换为MongoDB的ObjectId类型,才能匹配成功。改为:

const mongoose = require('mongoose'),     User = mongoose.model('user');  User.aggregate([{     $match: {         _id: {$in: [mongoose.Types.ObjectId('592eb5c443d5c897d8282c88')]},// 注意,是这里做了修改     } }]).exec((err, user) => {     console.log(user.length);// 1 }); 

相关文档及问题

Enjoy IT

本文发表于2017年10月13日 06:34
(c)注:本文转载自https://my.oschina.net/alioveyu/blog/1549924,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2656 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1