簡體   English   中英

如何通過貓鼬使用mongoose從mongoDB獲取字段的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM