我想查询DB并返回一组文档,其中选定的嵌套字段等于true。作为一个人为的例子:让我们假设我有Facebook用户,他们的数据以这种格式存储。
const UserSchema = new Schema({
name: String,
age: Number,
permissions: {
allow_comments: Boolean,
allow_likes: Boolean,
allow_shares: Boolean
}
})我想返回所有将permissions.allow_likes设置为true的用户。注意,它不是一个完整的子文档,它只是一个包含一些数据的对象(也许这很糟糕,idk)。
我环顾四周,没有发现什么。所以,我试了一下:
UserModel.find({permissions: {allow_likes: {$eq: true}}})
.then(users => console.log(users)); // returns []; 提前感谢!
发布于 2018-01-05 23:52:45
我不知道您是如何使用模式和模型的,但我认为您做得不对。在本例中,我将使用一个单独的文件来存储这样的用户模式(/schemas/user.js):
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
name: String,
age: Number,
permissions: {
allow_comments: Boolean,
allow_likes: Boolean,
allow_shares: Boolean
});
module.exports= mongoose.model('User',userSchema);在此之后,要使用它,您可以执行以下操作:
var userModel = require('../schemas/user.js')
var mongoose = require('mongoose');
userModel.find(
{
permissions: {allow_likes: true}
},(err,results) => {
if (err) {
//well you got an error
}
if (results)
{
console.log("Results: "+results);
}
}
);https://stackoverflow.com/questions/48122786
复制相似问题