当前位置: 首页 > 面试题库 >

Nodejs Mongo插入子文档-动态字段名

高锦
2023-03-14
问题内容

{用户名:’我’,公司:{“您的公司”:{…}}

我想在用户记录(用户集合)中插入公司,以便:

{username:’me’,companies:{“ yourcompany”:{…},“ mycompany”:{…}}

但是这个名字是动态的。

var companyid = "mycompany";

.collection('users').findAndModify(
{username: usern}, 
[['_id', 'asc']], 
{$set:{companies:{companyid: { desksmemberships:[] }}}},    
{new: true}, function(){...}

为此。.{username:’me’,companies:{“ yourcompany”:{…},“ companyid”:{…}}

我该怎么做呢?


问题答案:

您必须以$set编程方式构建修改器:

var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };

然后modifier用作findAndModify调用中的第三个参数。

您可能还需要考虑更改companies为数组而不是嵌入式对象。

Node.js 4.x更新

现在,您可以使用计算属性语法直接在对象文字中执行此操作:

collection('users').findAndModify(
    {username: usern}, 
    [['_id', 'asc']], 
    {$set:{['companies.' + companyid]: { desksmemberships:[] }}},    
    {new: true},
    function(){...});


 类似资料:
  • 我希望将动态字段存储到文档中,但每个文档可以有不同的字段。 例如: 如果我运行上述程序,mongodb文档如下所示。 但我想要的是字段名称应该是“field1”而不是这样的“df”。 这只是一个示例代码,所以我知道df值是什么,但实际上我不知道df值是什么。那么在存储时动态命名字段的方法是什么? 在Mongoengine中有一个类似的使用key作为值的问题,但是解决方案建议使用DictField(

  • 我的FiRecovery数据库中有一个名为Reports的集合,我已经在其中添加了文档。但我现在的问题是我想在报表中添加一个带有子集合的文档,有什么想法吗?

  • 主要内容:insert() 与 save() 方法,insertOne() 方法,insertMany() 方法前面我们已经介绍了如何在 MongoDB 中 创建数据库和 创建集合,接下来我们再来介绍一下如何在集合中插入文档。文档是 MongoDB 中数据的基本单位,由 BSON 格式(一种计算机数据交换格式,类似于 JSON)的键/值对组成。 insert() 与 save() 方法 您可以使用 MongoDB 中的 insert() 或 save() 方法向集合中插入文档,语法如下: db.

  • 任何人都可以帮助我查询mongo以释放数组,我使用的是mongdb本机驱动程序我的收集文档如下,也请忽略我的objectId它只是示例 而我的预期产出是 我只想解开我的数组,在一个查询中的爱好描述之间添加一个逗号,谢谢你的帮助

  • 问题内容: 我想编写一个具有动态创建的文档字符串的python函数。从本质上讲,对于一个函数,我想成为一个调用自定义函数的描述符,根据要求创建文档字符串。然后应返回动态生成的文档字符串。 这里的上下文是编写一个Python包,在现有的分析包中包装大量命令行工具。每个工具都变成了一个类似命名的模块函数(通过函数工厂创建并插入到模块名称空间中),其中函数文档和接口参数是通过分析包动态生成的。 问题答案

  • 在VAADIN组件中,用户可以选择插入一到N个问题答案。 初始:第一个答案应有一个文本字段,带有按钮(“添加另一个答案”) 按下按钮时,应为第二个答案添加一个新的文本字段,以此类推。。。 我的问题是,如何在按钮按下时实现新文本字段的动态加载? 我添加了一张我如何想象这个问题的图片。