因此,我试图将密钥添加到返回的mask = df['Col'].str.contains('[edit]', regex=False)
df['B'] = df.pop('Col').str.split('\s+\(|\s+\[', n=1).str[0]
df.insert(0, 'A', df['B'].where(mask).ffill())
df = df[df['A'] != df['B']].reset_index(drop=True)
print (df)
A B
0 Honda Accord
1 Honda Civic
2 Honda Pilot
3 Toyota Prius
4 Toyota Highlander
5 Ford Explorer
中。但是我似乎无法items = []
for x in df['Col']:
if x.endswith('[edit]'):
a = x.rstrip(' [edit]')
else:
b = x.split('(')[0].strip()
items.append((a, b))
df = pd.DataFrame(items, columns=['A', 'B'])
print (df)
A B
0 Honda Accord
1 Honda Civic
2 Honda Pilot
3 Toyota Prius
4 Toyota Highlander
5 For Explorer
工作。保存后如何处理返回的帖子?
我当时在想也许我需要像这样的post
向我的lean()
添加瘦肉。但这是行不通的,而且这只会使第一个初始职位变得可变。它会说
post.save不是函数
如果我也像findById
一样
我只想将要发送回客户端的对象返回,我不希望它们的密钥保存在实际文档中。
Post.findById(req.params.id).lean().then()
编辑
Post.findById(req.params.id).lean().then()
给出错误
post.save不是函数
答案 0 :(得分:1)
您可以通过在req.user.id
indexOf
数组中搜索likes
来简单地做到这一点
Post.findOne({ _id: req.params.id }).lean().then((post) => {
if (post.likes.indexOf(req.user.id) !== -1) {
post.isLiked = true
}
post.isLiked = false
res.json(post)
})
聚合效果更好
Post.aggregate([
{ "$match": { "_id": mongoose.Types.ObjectId(req.user.id) }},
{ "$addFields": {
"isLiked": { "$in": [mongoose.Types.ObjectId(req.user.id), "$likes"] }
}}
])
编辑:-如果要更新文档,请使用更新查询
Post.findOneAndUpdate(
{ _id: req.params.id },
{ $pull: { likes: { user: req.user.id } }},
{ new: true }
).then((post) => {
res.json(post)
})
发布喜欢的模式
...
likes: [
{
user: {
type: Schema.Types.ObjectId,
ref: "users"
}
}
]
...