Mar*_*ark 83 javascript mongodb node.js
我正在尝试通过id选择一个文档
我试过了:
collection.update({ "_id": { "$oid": + theidID } }
collection.update({ "_id": theidID }
collection.update({ "_id.$oid": theidID }}
Run Code Online (Sandbox Code Playgroud)
还尝试过:
collection.update({ _id: new ObjectID(theidID ) }
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误500 ...
var mongo = require('mongodb')
var BSON = mongo.BSONPure;
var o_id = new BSON.ObjectID(theidID );
collection.update({ _id: o_id }
Run Code Online (Sandbox Code Playgroud)
这些都不起作用.如何通过_id选择?
Kin*_*Pin 129
var mongo = require('mongodb');
var o_id = new mongo.ObjectID(theidID);
collection.update({'_id': o_id});
Run Code Online (Sandbox Code Playgroud)
nco*_*ges 69
这种方法对我有用.
var ObjectId = require('mongodb').ObjectID;
var get_by_id = function(id, callback) {
console.log("find by: "+ id);
get_collection(function(collection) {
collection.findOne({"_id": new ObjectId(id)}, function(err, doc) {
callback(doc);
});
});
}
Run Code Online (Sandbox Code Playgroud)
nkt*_*ssh 18
现在你可以使用这个:
var ObjectID = require('mongodb').ObjectID;
var o_id = new ObjectID("yourObjectIdString");
....
collection.update({'_id': o_id});
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到文档
Rap*_*ert 12
用native_parser:false:
var BSON = require('mongodb').BSONPure;
var o_id = BSON.ObjectID.createFromHexString(theidID);
Run Code Online (Sandbox Code Playgroud)
用native_parser:true:
var BSON = require('mongodb').BSONNative;
var o_id = BSON.ObjectID.createFromHexString(theidID);
Run Code Online (Sandbox Code Playgroud)
我只是在控制器文件中的Node.js应用中使用了此代码,它的工作原理是:
var ObjectId = require('mongodb').ObjectId;
...
User.findOne({_id:ObjectId("5abf2eaa1068113f1e")})
.exec(function(err,data){
// do stuff
})
Run Code Online (Sandbox Code Playgroud)
不要忘记之前安装“ mongodb”,如果您使用带有“ presave”的bcrypt加密密码,请确保在数据库中对记录的每次修改之后都不会加密密码。
/* get id */
const id = request.params.id; // string "5d88733be8e32529c8b21f11"
/* set object id */
const ObjectId = require('mongodb').ObjectID;
/* filter */
collection.update({
"_id": ObjectId(id)
} )
Run Code Online (Sandbox Code Playgroud)