请教个 mongoosejs 的问题
发布于 8 年前 作者 285858315 3360 次浏览 来自 问答

我在使用 mongoosejs 时,用普通的 find

	db.test.find({id:"56a869884da535514b39fd1e"})

来查数据时,即使数据库字段是 ObjectId 类型 ,传字符类型的参数也可以查出结果。

但如果用聚合查询时,也就是这样

db.test.aggregate([
	{$match:{id:"56a869884da535514b39fd1e"}}
])

传入的参数必需与数据库的类型保持一致才能取到数据,不知道这算不算框架的一个毛病,还是我在传参时就应该严格按类型来 传?

5 回复

你根本没有弄懂ObjectID是什么类型,这不算毛病的

@i5ting 不是什么技术都需要弄的透透彻彻的,有时只要会用就可以了,技术永远都学不完

@liygheart 强制类型有它的好处的,你去看看ObjectID到底是怎么组成的,对理解分布式,和这个问题非常好的,我写过一篇mongodb分页优化里说过

懂了,谢谢

回到顶部