ani*_*ish 11 mongoose mongodb node.js
mongoDB集合包含以下数据
db.stack.find()
{ "_id" : "8GieRu" }
Run Code Online (Sandbox Code Playgroud)
_id不是12字节的单个字符串,
根据[ObjectID] [1]的MongoDB文档,id(字符串) - 可以是24字节的十六进制字符串,12字节的二进制字符串或数字.
使用Mongoose,可以使用此Json访问此集合
{"_id" : new mongoose.Types.ObjectId("8GieRu")}
Run Code Online (Sandbox Code Playgroud)
并抛出以下错误
/node_modules/mongoose/node_modules/mongodb/node_modules/bson/lib/bson/objectid.js:35
throw new Error("Argument passed in must be a single String of 12 bytes or
^
Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at new ObjectID (/node_modules/mongoose/node_modules/mongodb/node_modules/bson/lib/bson/objectid.js:35:11)
[1]: http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html
Run Code Online (Sandbox Code Playgroud)
Mongoose严格检查固定长度的ObjectId,如何使用给定长度的mongoose传递Object_id
Mar*_*erg 13
你在这里混合了两个概念.
虽然"_id"可以有任何值(甚至子文档,如{firstName:'Foo',lastName:'Simpson'}"ObjectId"具有一组固定的类型,但有一些限制,因为错误消息正确表明.
所以你的陈述应该是
{'_id':'putWhatEverYouWantHere'}
Run Code Online (Sandbox Code Playgroud)
我在路由器订单中遇到了问题:
app.get('/jobs', controllers.jobs.getAllJobs);
app.get('/jobs/karriere', controllers.jobs.getAllJobsXML);
app.get('/jobs/:id', controllers.jobs.getJob);
app.get('/jobs/:id/xml', controllers.jobs.getJobXML);
Run Code Online (Sandbox Code Playgroud)
我在/jobs /:id 之后定义了/ jobs/karriere ,因此应用程序认为"karriere"是一个ObjectID并返回错误.上面的代码是工作代码.
| 归档时间: |
|
| 查看次数: |
30235 次 |
| 最近记录: |