CNode

请教个 mongoosejs 的问题

问答
2285858315发布于10 年前最后回复10 年前5 回复4616 浏览0 收藏

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

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

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

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

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

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

查看回复

回复 (5)

I
i5ting#1·10 年前

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

T
tomoya92#2·10 年前
引用 i5ting你根本没有弄懂ObjectID是什么类型,这不算毛病的

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

I
i5ting#3·10 年前
引用 tomoya92@i5ting 不是什么技术都需要弄的透透彻彻的,有时只要会用就可以了,技术永远都学不完

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

2
285858315#4·10 年前

懂了,谢谢

参与回复
登录后即可参与回复。登录