Mongodb Mongoose aggregate:如何获取未填充列的所有文档?
这是我的猫鼬模式:Mongodb Mongoose aggregate:如何获取未填充列的所有文档?,mongodb,mongoose,aggregation-framework,Mongodb,Mongoose,Aggregation Framework,这是我的猫鼬模式: var userSchema = new mongoose.Schema({ userID: String, gender: String, dateCreated: { type: Date, default: Date.now } }) 这是我的问题 userSchema.statics.getUser = function(callback){ this.aggregate() .exec(function(err, result){
var userSchema = new mongoose.Schema({
userID: String,
gender: String,
dateCreated: { type: Date, default: Date.now }
})
这是我的问题
userSchema.statics.getUser = function(callback){
this.aggregate()
.exec(function(err, result){
callback(result);
});
}
有些用户在创建时可能没有添加性别,如何使用未填充性别属性的聚合来提取所有文档?您不需要为此添加聚合。只需一个常规的旧查询即可
User.find({gender: {$exists: false}}, function (error, users) {/*...*/}};
结果实际上是语言不可知的,所以一个简单的mongo shell就足够了。 结果可以简单地通过查找获得: 考虑:
> db.user.find().pretty()
{
"_id" : ObjectId("52ecf6b46a8b205baeb2cc58"),
"user" : "neil",
"gender" : "M"
}
{ "_id" : ObjectId("52ecf6c66a8b205baeb2cc59"), "user" : "fabio" }
{
"_id" : ObjectId("52ecf77c6a8b205baeb2cc5a"),
"user" : "markus",
"gender" : "M",
"preference" : "any"
}
这在以下情况下效果良好:
> db.user.find({ preference: null }).pretty()
{
"_id" : ObjectId("52ecf6b46a8b205baeb2cc58"),
"user" : "neil",
"gender" : "M"
}
{ "_id" : ObjectId("52ecf6c66a8b205baeb2cc59"), "user" : "fabio" }
还有,$match合计:
> db.user.aggregate([{$match: { prefernce: null }}])
{
"result" : [
{
"_id" : ObjectId("52ecf6b46a8b205baeb2cc58"),
"user" : "neil",
"gender" : "M"
},
{
"_id" : ObjectId("52ecf6c66a8b205baeb2cc59"),
"user" : "fabio"
},
{
"_id" : ObjectId("52ecf77c6a8b205baeb2cc5a"),
"user" : "markus",
"gender" : "M",
"preference" : "any"
}
],
"ok" : 1
}
查看MongoDB文档中的更多信息。我需要聚合,因为我要做项目和组。