我有一个名为Post的模型,女巫包含一个属性数组,其中包含用户标识的属性数组。MongoDB:查询模型并检查文档是否包含对象,然后标记/组结果
现在,我需要查询帖子模型,并标记返回的结果与用户在客户端使用的requestedBySelf true/false - 这可能吗?
我不必在数据库中存储likedBySelf属性,只需修改结果以获得该属性即可。
我发现的一个临时解决方案是做2个查询,一个发现用户x喜欢的帖子,还有那些用户x没有喜欢的帖子,以及en map(设置likesBySelf true/false)和组合2个数组并返回组合数组。但是这给其他查询函数(如限制和跳过)提供了一些限制。
所以现在我的疑问是这样的:
var notLikedByQuery = Post.find({likedBy: {$ne: req.body.user._id}})
var likedByQuery = Post.find({likedBy: req.body.user._id})
(我使用的是猫鼬LIB)
PS。一个典型的后可以像这样(JSON):
{
"_id": {
"$oid": "55fc463c83b2d2501f563544"
},
"__t": "Post",
"groupId": {
"$oid": "55fc463c83b2d2501f563545"
},
"inactiveAfter": {
"$date": "2015-09-25T17:13:32.426Z"
},
"imageUrl": "https://hootappprodstorage.blob.core.windows.net/devphotos/55fc463b83b2d2501f563543.jpeg",
"createdBy": {
"$oid": "55c49e2d40b3b5b80cbe9a03"
},
"inactive": false,
"recentComments": [],
"likes": 8,
"likedBy": [
{
"$oid": "558b2ce70553f7e807f636c7"
},
{
"$oid": "559e8573ed7c830c0a677c36"
},
{
"$oid": "559e85bced7c830c0a677c43"
},
{
"$oid": "559e854bed7c830c0a677c32"
},
{
"$oid": "559e85abed7c830c0a677c40"
},
{
"$oid": "55911104be2f86e81d0fb573"
},
{
"$oid": "559e858fed7c830c0a677c3b"
},
{
"$oid": "559e8586ed7c830c0a677c3a"
}
],
"location": {
"type": "Point",
"coordinates": [
10.01941398718396,
60.96738099591897
]
},
"updatedAt": {
"$date": "2015-09-22T08:45:41.480Z"
},
"createdAt": {
"$date": "2015-09-18T17:13:32.426Z"
},
"__v": 8
}
你能为你的收藏提供json吗? –
@HarshPatel我现在在问题中包含了一个JSON示例。 – tskippe