native js如何找到一个集合的字段名称,其中另一个字段等于某个值

问题描述 投票:-1回答:2

我知道在robomongo上如果我想找到用户的_id,我可以使用username = test2

db.getCollection('user').find({},{_id:1},{"username":"test2"})

现在,在visual studio代码上,我想从用户集合中找到字段“disabled”的值,其中字段“username”值等于变量“tempusername”值。我试过了:

    colUser = mongoDb.collection("user");

 var status = colUser.find({},
    { disabled:1},{ username:tempusername},function (err, doc) {
        console.log(doc);
      });

但它显示状态值是“未定义”。这是什么写代码?

node.js mongodb
2个回答
1
投票

我认为这是你正在寻找的东西。

const url = 'mongodb://localhost:27017'

MongoClient.connect(url, (err, db) => {
 const dbo = db.db('mydb')
 dbo.collection('user').find({disabled:'1',username:tempusername}).toArray((err, doc) => {
    if(err){
        console.log(err)
    }
    console.log(doc)
    db.close()
 })    
})

1
投票

我找到了答案,基本上它的工作方式是结果将在函数内部返回,所以我必须像这样:

   var statusbuffer;


colUser.findOne({ username:tempusername},{ _id:0,disabled:1},function (err, userstatus){    
    // User result only available inside of this function!
    if (err) {
        next("Failed to update records");
    } else {
    console.log("disabled status here:",userstatus.disabled) // => yields your user results
    statusbuffer = userstatus.disabled;
    next();
    }
});

谢谢大家的意见!

© www.soinside.com 2019 - 2024. All rights reserved.