【问题标题】:How to set result of query as array with mongoose/mongodb如何使用 mongoose/mongodb 将查询结果设置为数组
【发布时间】:2016-02-23 10:36:35
【问题描述】:

我需要将查询结果设置为正在保存的对象的数组。

首先我得到物品:

Item.find({...}, function...

看起来像这样:

data =

[ { foo: [],
bar: true,
_id: 564f62b1659abdc22b9dd1da },
{ foo: [],
bar: true,
_id: 564f76b628bd4b62335bad7c } ]

现在我创建一个对象,我想将查询结果的 _ids 保存为“项目”参考数组:

var itemholder = new Itemholder(req.body);
itemholder.items = ????

Itemholder 有一个名为“items”的“Item”引用数组,应该如下所示:

"items" : [ { "item" : ObjectId("564f62b1659abdc22b9dd1da"),
    "_id" : ObjectId("564f54c4e9bbbbee230647a4") },
    { "item" : ObjectId("564f76b628bd4b62335bad7c"),
    "_id" : ObjectId("564f67043f88a5b12d6c32ff") } ]

谢谢。

【问题讨论】:

  • 你有什么问题?您是在寻找如何将第一组结果转换为第二次插入的正确格式,还是在询问如何为“Itemholder”模型定义架构,或两者兼而有之,或其他?
  • 我想知道如何将查询结果转换为我可以设置“items”属性/数组的格式。

标签: mongodb mongoose


【解决方案1】:

找到了一种方法(可能不是最好的):

Item.find(..., function(err, data){
    if(err){
        ...
    }else{
        data = data.map(function(data) { return {'item': data._id}; });
        sprint.items = data;
        sprint.save(function(err2, data2){
        ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 2018-12-22
    • 2015-07-22
    • 2021-07-22
    • 2014-06-03
    • 2014-05-12
    • 2019-02-18
    相关资源
    最近更新 更多