1

我遇到了奇怪的情况 - 从 Django shell 创建一些 Mongoengine 对象是成功的,但是从 Django 视图创建相同的对象看起来很成功,但 MongoDB 中没有出现任何数据。即相同的代码 -

from myapp.mongomodels import MyModel

m = MyModel(a=1, b=2, c=3)
m.save()

从 运行时生成插入 MongoDB 的新对象manage.py shell,从 Django 视图运行时不生成任何内容。我已经跟踪了代码,我看到mongoengine.Document.save()方法运行正常,没有任何异常。

看起来我错过了一些明显的东西。

将不胜感激任何帮助。

4

2 回答 2

1

您应该可以这样做,但使用以下命令强制保存:

from myapp.mongomodels import MyModel

m = MyModel(a=1, b=2, c=3)
m.save(force_insert=True)
于 2011-08-16T15:57:35.390 回答
0

正如我之前所说,问题在于我在保存之前分配了一个主键值。

我有一个系统,其中一些数据存储在 MySQL 中,一些相应的数据存储在 MongoDB 中。首先创建 MySQL 记录,在 MySQL 记录之后创建相关的 MongoDB 记录,具有相同的主键值。因此,pymongo 认为这是更新请求而不是插入请求,根本没有插入任何记录。

于 2011-07-16T09:49:11.737 回答