我一直在研究猫鼬文档,但我找不到一种方法来实现我想要做的事情。考虑一个MangGDB用户集合。还可以考虑一个包含DB集合中所有字段的蒙古人用户模式。
现在,我想登录到控制台,所有用户,但属性已更改。有点像:
Users = mongoose.UserSchema;
ApiUserSchema;
Users.find(function(err,users){
//for each user that mongoose finds,
//I want to convert from UserSchema to "ApiUserSchema"
//Something like the following:
newUsers = users.ToApiUserSchema();
console.log(newUsers);
})
用户。图例():
function toApiUserSchema(user){
username = user.username;
email = user.email;
someAggregate = user.Username + user.Email;
.......and so on.....;
}
给定的异步类型。find()函数我不确定这是否可以实现。我来自C#和PHP背景,只处理关系数据库,这可以通过在用户类中使用只返回所需值的函数轻松实现。
能做到吗?!
您可以在用户模式上为此创建静态方法。在模式和模型创建之间定义静态方法非常重要。还要注意fint
返回的数组不是一个对象。
var userSchema = new mongoose.Schema({
username: String,
email: String,
password: Number
})
userSchema.statics.toApiUserSchema = function(data) {
return data.map(function(user) {
return {
email: user.email,
username: user.username,
emailAndUsername: user.email + user.username
}
})
}
var User = mongoose.model('User', userSchema)
User.find({}, function(err, users) {
console.log(User.toApiUserSchema(users))
})
问题内容: 如果一个方法填充/修改了一个对象,是否最好返回该对象或将返回类型保持为空,并且该方法将通过其引用来修改该对象? 我知道这是一个琐碎的问题,但是哪个是最优选的? 问题答案: 我取决于您的样式,但是返回的优点之一是:您可以调用,即可以链接方法调用。 例如,看看这是怎么做的,它允许这样的事情
当我试图更改Mongoose查询返回的数据的任何部分时,它没有任何效果。 昨天我花了大约两个小时试图弄明白这一点,各种各样的s,使用临时存储变量等。最后,就在我觉得自己疯了的时候,我找到了一个解决方案。所以我想到了未来的某个人(Fyuuture!)可能存在保存问题。
根据java.util.hashset.contains()的JavaDoc,该方法执行以下操作 但是,这似乎不适用于以下代码: 打印出来: 假
我正在学习nodejs和mongodb,并获得平均应用程序 我的系统规格是 Ubuntu 16.04(64位) 节点v 6.1.0 npm v 3.8.6 "mongodb":"^2.1.18", "猫鼬":"^4.4.16"," 到目前为止,我已经创建了模式,并通过终端使用在mongob集合中添加了一个条目,并使用获得生成的文档_id。 db。位置。查找()。终端中的pretty()返回低于输出
为了学习平均堆栈(使用Mongoose),我创建了一个StackOverflow类型的应用程序。我有存储在Mongo(v3.0.7)中的问题,它们有答案子文档。 我试图增加一个答案的投票数,但当问题返回时,它是空的。我非常肯定查询有问题,特别是我试图用需要修改的ID得到答案的地方。 查询0票有效: 更新:通过Mongo查询,返回结果: 但是,通过Mongoose返回NULL:
PostgreSQL提供了从DML语句返回数据的简洁方法,请参见https://www.PostgreSQL L.org/docs/current/DML-returning.html 我试图实现的是类似以下片段的东西 若要检索已删除的行,请执行以下操作。但是,这会导致以下异常 Spring Data JDBC声明修改查询只能返回void、int和boolean,请参见https://docs.S