当前位置: 首页 > 知识库问答 >
问题:

MongoDB返回集合,但长度属性显示为0

林冥夜
2023-03-14

我是express mongo主干的新手。我通过主干收集从mongodb获取数据。fetch();作为回报,我得到了数据,但正如你在下面看到的。长度和型号数组显示为0,这是错误的。因为如果我向下钻取,我可以看到我所有的文档/模型。我做错了什么?下面是我在客户端的代码-主干

var API = {
    getContactEntities: function () {
        var contacts = new Entities.ContactCollection();
        console.log("fetching data from database");
        contacts.fetch();
        console.log(contacts);
        if (contacts.length === 0) {
            // if we don't have any contacts yet, create some for convenience
            //return initializeContacts();
        }
        return contacts;
    }
};

下面是我在server-express上的代码。正在响应url“/contacts”上获取的js

//app.get('/contacts', appointments.allContacts);
exports.allContacts = function (req, res) {
    db1.db.users.find({}, function(err, appointments) {
        if (err) { res.json(err); }
        res.json(appointments);
    });
};
--------------------------------------------------------------------------------------
child {length: 0, models: Array[0], _byId: Object, constructor: function, url: "contacts"…}
_byId: Object
c5: child
c6: child
c7: child
c8: child
__proto__: Object
_events: Object
_listenerId: "l4"
length: 4
models: Array[4]
0: child
_changing: false
_events: Object
_pending: false
_previousAttributes: Object
attributes: Object
_id: "52604e58d40340638c5e4b45"
address: Object
firstName: "Alen"
lastLogin: ""
lastName: "Wilkins"
phoneNumber: "555-0184"
pwd: ""
userId: "1"
userName: "chidu.murthy@gmail.com"
userStatus: "active"
userType: "admin"
__proto__: Object
changed: Object
cid: "c5"
collection: child
__proto__: Surrogate
1: child
2: child
3: child
length: 4
__proto__: Array[0]
__proto__: Surrogate

你们谁能解释一下出了什么问题?

为了完全排除MongoDB的行为,我只传递了一个json对象作为resonse,但结果仍然是一样的!!!因此,它必须是有明确或主干的东西

res.json(
        [
            { _id: 1, firstName: 'Alice_db', lastName: 'Arten',
                phoneNumber: '555-0184' },
            { _id: 2, firstName: 'Bob_db', lastName: 'Brigham',
                phoneNumber: '555-0163' },
            { _id: 3, firstName: 'Charlie_db', lastName: 'Campbell',
                phoneNumber: '555-0129' }
        ]
    )

非常感谢提前。

比尔,奇丹

共有1个答案

章宏恺
2023-03-14

你贴的大多数东西看起来都不错。setTimeout您没有抓住要点:

contacts.fetch();
//fetch is asynchronous. contacts is ALWAYS still going to be empty here
console.log(contacts);
contacts.on('sync', function () {
  //look, the 'sync' event has fired meaning the data is actually here now!
  console.log(contacts); 
});
 类似资料:
  • 我有一个管道,它只过滤我的ngFor与精确的匹配,我通过点击过滤器参数来通过。 这是我的烟斗: 这是我的HTML: 当我单击带有id过滤器的div时,我更改了变量filterWert的值。然后我用这个值过滤我的ngFor。奇怪的是,它曾经有效过一段时间,但现在不再有效了,我不明白为什么。当我调试它时,我得到了从管道返回的值,但是ngFor不会显示它们。我犯的错误在哪里?

  • 我想显示存储在我的mongodb中的每个文档。我尝试了以下代码,它只是简单地获取collection.find()并通过res.send()显示 我希望它显示存储在mongoDB中的实际文档。但相反,它显示了这种对象格式: 显示原始mongodb文档还需要其他步骤吗?

  • 我正在讨论设计我们的API(Stream vs Collection作为返回类型)的最佳方式。这篇文章中的讨论非常有价值。 @BrainGotez的答案提到了一个条件,即集合优于流。我不太明白这意味着什么,谁能帮我举个解释的例子? 当有很强的一致性要求时,您必须生成移动目标的一致快照 我的问题是,具体而言,“强一致性要求”和“移动目标的一致快照”在现实应用中意味着什么?

  • 我做错了什么?我需要组件的完整构造函数吗?这是因为cs是静态的?springboot不是要自动填充这些值吗?

  • 问题内容: 在这里处理一个奇怪的问题。这是从mongodb中提取并传递给以下函数的对象数组。 我在从数据库中拉出的阵列中依次尝试了以下3个日志: (数组中的object元素)可以正确返回。如您所见,所有属性(键)都存在: { paid: false, hotelWebsite: 'www.testing.com’, _id:5951848a24bb261eed09d638, hotelAddres

  • 我已经遵循了这一点,我能够返回名字,最后的名字,用户名和电子邮件没有问题。我试图使用这里的keycloak映射目录来映射LDAP。我成功地将LDAP字段设置为 下面是一个express路由器的工作示例,它在成功登录后返回keycloak数据。我看到我不是唯一一个使用属性映射LDAP数据的人。