我有以下猫鼬模式:
user = {
"userId" : "myId",
"connections":
[{
"dateConnectedUnix": 1334567891,
"isActive": true
}, {
"dateConnectedUnix": 1334567893,
"isActive": false
}]
}
我想删除connections
数组中的第二项,以获取以下信息:
user = {
"userId" : "myId",
"connections":
[{
"dateConnectedUnix": 1334567893,
"isActive": false
}]
}
以下代码按预期完成了工作:
userAccounts.update({'connections.isActive': false },
{$pull: { 'connections.isActive':false }},
function (err,val) {
console.log(val)
});
但是,我需要基于ObjectId删除。并且以下行不通:
userAccounts.update({'connections._id': '1234-someId-6789' },
{$pull: { 'connections._id': '1234-someId-6789' }},
function (err,val) {
console.log(val)
});
有什么建议?我一直将头撞在屏幕上(又名Google,Stackoverflow等),却没有运气。
似乎以上代码无法正常工作。对于我给出的第一个示例,它甚至都不起作用。
这是我的工作代码:
userAccounts.update(
{ userId: usr.userId },
{ $pull: { connections : { _id : connId } } },
{ safe: true },
function removeConnectionsCB(err, obj) {
...
});
问题内容: 我的模型文档中有一个数组。我想根据我提供的密钥删除该数组中的元素,然后更新MongoDB。这可能吗? 这是我的尝试: 到目前为止,它可以找到文档,但是删除或保存仍然有效。 问题答案: 您也可以直接在MongoDB中进行更新,而不必加载文档并使用代码对其进行修改。使用或运算符从数组中删除项目: (您也可以将updateMany用于多个文档) http://docs.mongodb.org
问题内容: 以上似乎不起作用。记录仍然存在。 有人可以修复吗? 问题答案: 是一系列文档。所以它没有方法 您可以分别迭代和删除数组中的每个文档。 或-由于看起来您是通过(可能)唯一的id使用来查找文档的- 而不是。
问题内容: 我在子文档的Mongoose中尝试执行findOne查询,但运气不佳… 我的架构如下所示: 我只需要从我使用此查询的文档中查找用户的电子邮件 任何帮助,将不胜感激! 问题答案: 您缺少对象的级别,因此您的代码需要更改为以下内容:
我在MongoDB中有一个收藏,如下所示: 但是,我无法找到一个查询来实现这种效果。基本上,一个tweetID会参与多个簇,因此会出现在各个簇的成员属性的多个子文档中。我想提供一个bulk$pull操作,在这里我可以删除所有集群中的所有子文档(即它们的成员属性),这些子文档与特定的tweetid匹配。 一些帮助和直觉会真的很有帮助。
问题内容: 在我正在处理的集合中,文档如下所示: 我写了这个Mongoose模式来访问它: 当我查询文档时,一切正常,控制台中显示的输出正确。但是当我尝试执行console.log(myDoc.stuff)时,得到了以下信息: 代替 我究竟做错了什么?谢谢您的帮助!! 问题答案: 免责声明:此回复的日期过早,2012年!这可能不是最准确的。 从猫鼬的文档。 http://mongoosejs.co
问题内容: 我的意思不是删除一个或多个文件。我的意思是完全删除该模型,以便猫鼬不再意识到它。声明模型后,我不知道如何使猫鼬忘记该模型,以便可以重新创建它。 目前,上面引发了一个异常。 OverwriteModelError:编译后无法覆盖“ Book”模型。 我希望能够做这样的事情… …并且没有任何错误。有任何想法吗? 问题答案: 试试这个 然后重新注册/重新初始化它。它将正常工作