在具有多个对象的Mongodb文档中查询特定键的值

时间:2019-08-27 09:31:35

标签: javascript node.js mongodb mongoose

我是Node.js的新手,我正在尝试通过服务器建立一个网站,用户可以在其中输入代码。然后,服务器检查MongoDB数据库中是否存在特定代码。如果是这样,服务器将重定向用户并呈现一个新页面,其中包含源自同一对象中其他值的信息。

我能够使用模板引擎渲染页面,并且还能够成功建立与MongoDB Atlas数据库的连接。所有对象都作为数组位于服务器上的一个文档中。我似乎对成功查询数据库迷失了。

用户的架构如下:

const mongoose = require('mongoose')

const UserSchema = mongoose.Schema({
    token: {
        type: String,
        required: true,
        max: 8
    },
    name: {
        type: String,
        required: true
    }
})

module.exports = mongoose.model('users', UserSchema)

我已在Mongo GUI的帮助下将所有令牌和名称上传为JSON文件。数据库中的所有条目都是集合对象(https://i.imgur.com/sld2GXb.png

我尝试了以下查询(没有运气);


User.find({ token: req.body.token })
    .then(user => {
    if(user.token == req.body.token) {
        console.log('Succesful query!')
        res.redirect('/nextpage')
    } else {
            res.redirect('/')
    }
})

1 个答案:

答案 0 :(得分:0)

尝试使用findOne()代替find()

public class Activity2{
.......
mSave = findViewById(R.id.save_button);            
mSave.setOnClickListener((View v)->{
        try {
        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        mBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
        byte[] bytes = stream.toByteArray();
        getIntent().putExtra("Bitmap Bytes",bytes);
        stream.close();
        mBitmap.recycle();
        this.setResult(RESULT_OK,getIntent());
        this.finish();
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
}