Articles of objectid

通过Mongoose的ObjectId查找MongoDB文档

我正在尝试通过ObjectId来查找MongoDB中的文档。 工作stream程如下(这是一个博客)。 通过传递标题和正文在MongoDB中创build一个新post。 ObjectId是自动创build的。 去编辑post。 它使用来自URL的ObjectId从数据库中获取数据,并以相同的新postforms显示它,只是使用预先存在的值。 当提交button被点击时,我想通过ObjectIdfind文档,并使用后表单中的值更新数据库中的值。 步骤1和2工作正常,但步骤3似乎并没有工作。 它redirect到我需要的页面。 但数据库尚未更新。 这和以前一样。 以下是更新post部分的相关代码: app.js app.post "/office/post/:id/update", ensureAuthenticated, routes.updatePost 路线/ index.js mongoose = require 'mongoose' ObjectId = mongoose.Types.ObjectId Post = require '../models/Post' … updatePost: function(req, res) { var o_id, the_id; the_id = req.params.id; console.log(the_id); // 510e05114e2fd6ce61000001 o_id = ObjectId.fromString(the_id); console.log(o_id); // 510e05114e2fd6ce61000001 return Post.update({ "_id": ObjectId.fromString(the_id) }, […]

小parsingID迁移到正常的MongoDB的ObjectIDs

我正在使用Parse Dashboard进行iOS应用程序的用户pipe理。同时,我正在使用使用MongoDB数据库的外部API。 目前我面临的问题是从Parse Dashboard创build的用户使用的是小ID而不是MongoDB的ObjectID,而其他没有被parsing的资源是由普通ObjectID生成的。 例如。 用户对象: { _id:"qVnyrGynJE", user_name:"Aditya Raval" } 文档对象: { _id:"507f191e810c19729de860ea", doc_name:"Marksheet", user:"qVnyrGynJE" } 任务对象: { _id:"507f191e810c19729de860ea", task_name:"Marksheet", user:"qVnyrGynJE" } 我也使用Keystone.js作为后端pipe理仪表板。所以基本上是由于KeyStone.js内部的这种ID混合关系被打破,Keystone.js崩溃。 所以我想将所有现有的小ID迁移到正常的MongoDB ObjectID,而不必通过修复Keystone.js来打破人际关系或其他漫游

Mongoose中的Model.findOne()和Model.findById()有什么区别?

考虑我们正在根据_id值从MongoDB中search一个文档。 以下哪个代码是有效的? ModelObj.findById(IdValue).exec(callback); ModelObj.findOne({ '_id': IdValue}).exec(callback); 我觉得ModelObj.findById()是有效的,但是支持的原因是什么或者效率如何?