对于mongodb自动生成的_id如何查询?
发布于 3个月前 作者 jackson18 1334 次浏览 来自 问答

利用mongo0se取得是null, User.findOne({_id:id},function(err,doc){… 2014-10-25_222556.png

11 回复

var ObjectID = require(‘mongodb’).ObjectID; User.findOne({_id:ObjectID(id)},function(err,doc){…

@zemug 这样查到还是null。

我没有用mongoose,我用的是原生的mongodb api,id需要用ObjectID封装一下,mongoose应该有api直接传字符串的id

你确定查询的时候id不是空的吗,或者数据库中就没有这条记录

mongoose 中 schema 定义的mongoose.Schema.Type 是 ObjectID吗

是不是数据表名不一样导致无数据?什么条件都不传能查到吗

@jiangli373 数据库中有相应记录,我现在改成id由自己自定义产生,这样可以查出来了。对于ObjectID(id)看了好久api也无解。

@njaulj 恩,是这问题,之前写的是String,改成这样是可以找到了。不过修改时如果把id带回去会报:500 Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters.

@jackson18 能否把源码贴上

回到顶部