gpt4 book ai didi

javascript - 需要在async find操作里面修改json和return

转载 作者:可可西里 更新时间:2023-11-01 09:34:56 24 4
gpt4 key购买 nike

我需要遍历对象 ID 列表,找到一个用户,然后修改 json 对象并返回它。

我研究了 bluebird,但下面的代码没有按照我的意愿执行。返回后好像修改了json对象。

我尝试返回 user["test"] = "lol" 但它只返回“test”的值,而我需要整个更新的 json。

Promise.map(['5781635026d6fad4486d81e9', '578296e31029e27b4ea53e9d'], function(i) {
return User.findOneAsync({
_id: i
}).then(function(user) {
user["test"] = "lol";
return user;
});
}).then(function(array) {
res.send(array);
})

是否有一个优雅的解决方案?

最佳答案

您可以采用的一种简单方法是使用 $in 运算符与查询中的 id 数组,然后应用 lean() 方法将普通 JS 对象返回为 Mongoose documents不允许添加属性。

看看这个例子:

User.find({ "_id": { "$in": ['5781635026d6fad4486d81e9', '578296e31029e27b4ea53e9d'] } })
.lean()
.exec()
.then(function(docs) {
var users = docs.map(function(user) {
user["test"] = "lol";
return user;
});
res.send(users);
})

关于javascript - 需要在async find操作里面修改json和return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38378317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com