![](/img/trans.png)
[英]How to get the value from a mongoose/mongodb document after using findOne()
[英]How to get the value of a field from mongoDB using mongoose through javascript
這是我數據庫newDb中集合用戶下的文檔,
> db.users.find().pretty()
{
"_id" : ObjectId("57025801593e301831ef3c72"),
"country" : "U.S",
"gender" : "Male",
"lastName" : "Ks",
"firstName" : "Balajee",
"password" : "$2a$08$.Qts1uaOJiyH.A0LM9QeGOB1EBfItB2nV29RxLVbloDnzAggIuGf6",
"email" : "balajee41@gmail.com",
"position" : [
"1",
"2"
],
"__v" : 1,
"operation" : "add",
"userip" : "11"}
如何從本文檔中獲取位置,操作和用戶信息 ,並將其用於執行功能? 這是除主節點文件之外的單獨Javascript文件中的函數。
function verifyOTP() {
var position = user.position;
var operation = user.operation;
var useripp = user.userip;
check(arr, position, operation, useripp);
}
嘗試這個:
var Helper = require('path_to_the_module_where_the_method_check_is_defined_and_exported');
function verifyOTP(user) {
var position = user.position;
var operation = user.operation;
var useripp = user.userip;
Helper.check(position, operation, useripp);
};
var query = {
// Your query here
};
var projection = {
position: 1,
operation: 1,
userip: 1,
_id: 0
};
User.findOne( query, projection, function(err, user) {
if(err) console.log("Error: " + JSON.stringify(err));
if(user) verifyOTP(user);
});
如果使用mongoose
,定義模型並使用它,比使用原始集合要好得多。
首先在文件user.js
定義一個模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
firstName: String,
lastName: String,
// TODO: add other required fields
});
mongoose.model('user', userSchema);
exports.userSchema = userSchema;
例如,在validation.js
添加驗證邏輯:
exports.verifyOTP = function(user) {
var position = user.position;
var operation = user.operation;
var useripp = user.userip;
check(arr, position, operation, useripp); // TODO: what is arr?
};
在user-service.js
,添加以下代碼:
var User = require('mongoose').model('user');
var validation = require('./validation');
var filter = { name: 'firstName' }; // TODO: use real filter here
var fields = 'position operation userip';
User
.findOne(filter, fields)
.then(validation.verifyOTP)
.catch(err => console.log(err));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.